0

クラスA_1toA_nと クラスB_1toがあるとしB_nます。

それぞれA_iが一連の に対して関係 (抽象的な話し方。関係は「A_4 が B_2 を好む」など) をB_j持ち、その逆も同じです。

質問:関係情報を保存するのに適した場所はどこですか? この種の問題に適したパターンはありますか?

解決策 1:それぞれA_iに、関連する を格納するリスト フィールドがありB_jます。

解決策 2:それぞれB_iに、関連する を格納するリスト フィールドがありA_jます。

解決策 1 と 2 は基本的に同じです。

解決策 3:情報を 3 番目の「情報」クラスに、たとえばマトリックスとして格納します。

4

1 に答える 1

1

ソリューション1ソリューション2のどちらを選択しても、クラスの好みに関する情報は別のクラスにのみ保存されますが、これは少し逆に見えます。
したがって、私は間違いなく別のRelationKeeperクラスに行きます。

public enum RelationType {
    LIKES,HATES...
}
public class Relation {
   RelationType type;
   Class relatedClass; //Or in what type and form this is stored
}
public class RelationKeeper {
   public List<Relation> getRelationsFor(Class c) {
   }
   public void setRelationsFor(Class c, List<Relation> relations) {
   }
   public void addRelationFor(Class c, Relation relation) {
   }
   ...etc
}

このようにして、クラスの「送信」関係のみを取得できるようにするか、「受信」関係も取得できるようにするかによって、ニーズに合わせて内部ストレージメソッドをカスタマイズおよび変更できます。

于 2012-07-21T13:48:07.957 に答える