以下のような擬似コードを実行しようとしています。これはネストされたクラスを使用するための規則やベストプラクティスに反しますか?外部クラス内に複数のリストを保持する静的ネストされたCass
public class Foo{
private list1, list2;
Bar bar = new Bar(list1, list2);
// use bar.listA, bar.listB, bar.listC,
//bar.listD, bar.listE
private static class Bar{
private list1, list2;
private listA, listB, listC, listD, listE;
private Bar(list1, list2) {
this.list1 = list1;
this.list2 = list2;
//logic to split list1 and list2 into 5 lists: listA, listB, listC, listD, listE.
//initialize the 5 lists
}
}
}
私はそれが論理的にのみそれがカプセル化 を高める
- で述べた理由のために、ネストされたクラスを使用しています
- それはより読みやすくなり、維持可能なコード
- そして理由mentioned here
外部クラスメンバーに直接アクセスする必要がないため、ネストされたクラスを静的にしています。
:より具体的には、ネストされたクラスの代わりにENUMを使用する必要がありますか?ネストされたクラスの5つのリストに対してgetters/setterを使うべきですか?ネストされたクラスのコンストラクタは分割ロジックを配置する正しい場所ですか?ネストされたクラスのプライベートメンバーを外部クラスで直接参照することはできますか?
このような抽象的なデザインについて考えるのは難しいです。あなたが解決しようとしている実際の世界の問題は何ですか? – plalx
2つのリストが外側のインスタンスに渡される場合、私はちょうどそれらを5つのリストに分割し、外側のインスタンス(のみ)にそれらのハンドルを持っているエレガントな方法が必要です。その単なるデータ変換プロセスです。 – Gadam
それだけであれば、外部クラスに機能的なソリューションを実装しています。ネストされたクラスやOO設計のどのような形式でも気にしません。それはあなたがそれらのリストに特別な振る舞いをしない限りです。分割ロジックはどのように使用されますか?いくつかの動作は一部のリストにのみ適用されますか? – plalx