これはより概念的な質問です。私は自分がやろうとしていることを行う方法を知っています。それが正しいことかどうかは疑問ですが。
実生活で少し入れ子になっているものを表現しようとしています。一連のアイテムで実行するアクティビティを指定するドキュメントです。1 つの文書が複数の項目をカバーし、各項目が複数のアクティビティを持つ場合があります。
したがって、階層は Document -> Item -> Activity になります。
私の現在の考えでは、これを 1 つのトップ レベル クラス Document で表し、このクラスには内部クラス ItemProgram が含まれており、このクラス自体に内部クラス Activity が含まれています。はい、それは 2 レベルの入れ子です。
public class Document {
// Properties of the document itself
private Map<Item, ItemProgram> itemPrograms; // Map of item programs
public class ItemProgram {
// Properties of the item program itself
private List<Activity> activities; // List of activities
public class Activity {
// Properties of the activity
}
}
}
内部クラスは公開する必要がありますが、コンストラクターを非公開にして、外部クラスにメソッドを追加することによってのみ作成されるようにしています。ご覧のとおり、コレクションのタイプを使用してインスタンスを保存します。
これはこれについて正しい方法ですか?二重入れ子?
内部クラスのすべてのインスタンスへの参照を格納するために、外部クラスでコレクションを使用することは適切ですか?