クラスをネストできるのはいつですか? 私が見る最も一般的な利点は、「共有スコープ」(クラス間での変数の使用) です。
これは、ネストされたクラスを独自のファイルに入れ、コンストラクターを介して引数を渡すよりも、魅力的ではない/ベストプラクティスではありませんか?
クラスをネストできるのはいつですか? 私が見る最も一般的な利点は、「共有スコープ」(クラス間での変数の使用) です。
これは、ネストされたクラスを独自のファイルに入れ、コンストラクターを介して引数を渡すよりも、魅力的ではない/ベストプラクティスではありませんか?
ネストされたクラスを使用する理由はいくつかあります。
これは、1 つの場所でのみ使用されるクラスを論理的にグループ化する方法です。
カプセル化を増加させます。
入れ子になったクラスは、より読みやすく保守しやすいコードにつながります。
子クラスから親クラスへの接続は、各クラスの変数とメソッドを視覚的に示すため、より簡単です。
私によると、ネストされたクラスが使用されたときに私が知っている1つのケースは、1つのオブジェクト(OBJ1)が2番目のオブジェクト(OBJ2)と緊密にバインドされていることを確認すると、2番目のオブジェクト(OBJ2)なしでは最初のオブジェクト(OBJ1)を作成できません。たとえば、従業員オブジェクトがあり、関連付けられたオブジェクトの 1 つが給与であり、給与オブジェクトを個別に作成することはできません。給与を支払う従業員がいないためです。
私が間違っている場合は、フィードバックを提供してください。
マップまたはマップを使用している 2 番目のケースでは、ネストされたクラスを使用してマップのマップを削除し、コードを理解しやすくすることができます。
3番目に、クライアント側にデータを送信したい場合、すべてのデータを持つ単一のオブジェクトで送信できます:)
外部クラスのコンポーネントを定義できるものが必要な場合、またはアダプターを定義したい場合。
すでに述べたものに加えて、もう 1 つの利点は次のとおりです。
プライベートな静的クラスは、関連するフィールドのグループをメソッドに渡し、クラス内のいくつかのメソッド呼び出しで同じデータのグループを操作する必要がある場合に便利です。リンクを単一のユニットとしてグループ化するために使用される、外部に公開されない LinkedList.Node クラスに似ています。