暗記方法:SOLID + Dimitの原理
6つのオブジェクト指向の原則
- 単一責任の原則-SRP
単一責任の原則は理解しやすいです。つまり、クラスは1つのことだけを実行しようとする必要があります。
- オープンクローズ原則-OCP
開閉の原則の定義は、ソフトウェアのオブジェクト(クラス、モジュール、関数など)は拡張のために開いている必要がありますが、変更のために閉じている必要があります。
つまり、要件が変更された場合は、コードを変更する必要があります。このとき、問題が発生する可能性があるため、元のコードを変更するのではなく、元のコードを拡張するようにしてください。
- リスコフの置換原則-LSP
Li置換の原則は単純です。基本クラスへのすべての参照は、そのサブクラスのオブジェクトを透過的に使用できる必要があります。
リスコフの置換原則は一般的に言われています。サブクラスは親クラスの関数を拡張できますが、親クラスの元の関数を変更することはできません。
リスコフの置換と開閉の原理は比較的似ています。拡張への開放と修正への閉鎖の効果は、Li置換によって達成されます。
- 依存性逆転の原則-DIP
この原則は、名前からはまったく意味がありません。簡単に言えば、それはインターフェース指向プログラミングになろうとすることです。
Java言語での依存性逆転の原則の現れは、モジュール間の依存関係が抽象化によって発生し、実装クラス間に直接の依存関係がないことです。依存関係は、インターフェースまたは抽象クラスを通じて生成されます。
- インターフェイスセグリゲーションの原則-ISP
インターフェイス分離の原則の定義は次のとおりです。クライアントは、必要のないインターフェイスに依存しないでください。あるクラスの別のクラスへの依存は、最小のインターフェイスで確立する必要があります。インターフェイスは最小限に抑えられ、肥大化したインターフェイスは機能に応じて複数のインターフェイスに分割できます。
上記のデザインアイデアは、英語の最初の文字が付いたSOLIDで構成できます。これらの5つの原則を満たすプログラムは、SOLID基準を満たすこととしても知られています。
- デメテルの法則-LOD
ディミットの原則は、最小知識の原則とも呼ばれ、彼の定義:オブジェクトは他のオブジェクトの最小限の理解を維持する必要があります。
そのため、クラスとクラス、より大きな結合度、1クラスの変更、大きい他のクラスへの影響、これは我々が提唱していること、ソフトウェアプログラミングの一般的な原則でもあるように、との密接な関係:低カップリング、高凝集度。