1) 単一責任の原則
クラスの複雑さを軽減します。クラスは 1 つの責任のみを担当し、クラスの可読性を向上させます。クラス。保守性により、クラスの変更によって引き起こされるリスクが軽減されます。通常の状況では、単一責任の原則に従う必要があります。単一責任の原則に違反するほど単純なのはクラス ロジックだけです。クラス内のメソッドの数が比較的少ない場合、単一責任の原則はメソッドレベルで維持できます。
2) インターフェイス分離の原則
クライアントは、必要のないインターフェイスに依存すべきではありません。あるクラスの別のクラスへの依存は、最小のインターフェイスに基づく必要があります。 。
推奨される関連ビデオ チュートリアル: java 無料ビデオ チュートリアル
3) 依存関係逆転の原理(依存関係逆転の原理、DIP)
1. 高レベルのモジュールは低レベルのモジュールに依存すべきではなく、両方ともその抽象化に依存すべきです
2. 抽象化は詳細に依存すべきではありません
3. 詳細は抽象化に依存すべきです
4 , すべてのロジック実装はアトミック ロジックで構成されており、分割できないアトミック ロジックは低レベル モジュール (通常はインターフェイス、抽象クラス) であり、アトミック ロジックのアセンブリは高レベル モジュールです。 Java 言語では、抽象化はインターフェイスまたは抽象クラスを指しますが、どちらも直接インスタンス化することはできません。詳細は実装クラスであり、インターフェイスの実装または抽象クラスの継承によって生成されたクラスは詳細であり、直接インスタンス化できます。
4) リスコフ置換原則
型 S のすべてのオブジェクト o1 に対して、型 T のオブジェクト o2 が存在する場合、すべてのオブジェクトが T で定義されている場合、プログラム P のオブジェクト o1 が o2 に置き換えられても、プログラム P の動作は変わりません。その場合、型 S は型 T のサブタイプになります。
基本クラスへのすべての参照は、そのサブクラスのオブジェクトを透過的に使用できなければなりません。
2 番目の定義が最も明確です。平たく言えば、親クラスが出現できる限り、サブクラスも出現でき、それをサブクラスに置き換えてもエラーや例外は発生しません。それが親クラスなのかサブクラスなのかを知る必要があります。しかし、その逆は当てはまらず、サブクラスが出現した場合、親クラスは適応できない可能性があります。
継承を使用する場合は、親クラスのメソッドをオーバーライドしないようにしてください。
5) オープンクローズ原則 (ocp)
クラス、モジュール、関数などのソフトウェア エンティティは、拡張のためにオープンし、変更のためにクローズする必要があります。
ソフトウェア実装は、拡張に対してオープンであり、変更に対してクローズである必要があります。これは、ソフトウェア エンティティは、既存のコードを変更することではなく、拡張を通じて変更を達成する必要があることを意味します。
6) デメテルの法則
# は最小知識原則 (LKP) とも呼ばれ、オブジェクトは他のオブジェクトについての知識を最小限にすべきであると表現することもできます。理解とは、つまり、クラスは、結合または呼び出す必要があるクラスについて最低限のことを知っている必要があります。
1. 直接の友達とのみ話します (直接の友達とのみ話します) クラスの中で、どのクラスが友達としてカウントされますか?メンバ変数やメソッドの入出力パラメータに現れるクラスをメンバフレンドクラスと呼びます。メソッド本体内に表示されるクラスはフレンド クラスに属しません。
2. 友達との間にも距離があるので、それをあまり表に出さないと、2回目の修正で影響範囲が広がってしまいます。これには、クラス間のパブリック メソッドが不謹慎に公開されないことも必要です。
3. メソッドがクラス間の関係にある場合、それを独自のクラスに配置しても、クラス間の関係が強化されることはなく、影響もありません。マイナスの影響がある場合は、それを独自のクラスに配置します。
4. RMI (リモート メソッド呼び出し) のシリアル化操作を慎重に実行する
ベスト プラクティス: ディミットの法則の核心はクラス間の分離にあります。クラス間の弱い結合のみが再利用率に影響します。増加。必要な結果は、多数の転送クラスまたはジャンプ クラスを生成することです。
7) 合成と再利用の原則
合成/集約再利用の原則は、新しいオブジェクトの一部の既存のオブジェクトを使用して、それを新しいオブジェクトの部分にすることです。新しいオブジェクトは、これらのオブジェクトに委任することで、既存の機能を再利用するという目的を達成します。
簡単に説明すると、合成/集約を使用し、継承は使用しないようにしてください。
その他の関連記事の推奨事項:Java の概要
以上がJava デザイン パターンで一般的に使用される原則の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。