横たわるデザインパターンのノート(3)の6つの原則

単一責任の原則

英語:シングル責任の原則は、と呼ばれるSRP

定義

カテゴリでは、それが唯一の変化の原因の一つでなければなりません。

説明

  • あまりにも多くの責任を負担するクラスは、それが一緒に結合されたこれらの関数を意味している場合、責任の変化が弱めたり、このクラスの能力は、他の職務を行う阻害することができます。このカップリングは、変更が発生した場合、デザインが予期せぬダメージを被るだろう、壊れやすい設計につながります。
  • ソフトウェア設計の多くは、実際に実行する必要があり、互いに分離これらの義務と責任を見つけることです。
  • あなたは、クラスを変更する動機よりも考えることができる場合、そのクラスは複数の役割を持つことになります。

開く - クローズド原則

英語:オープンクローズの原則と呼ばOCP

定義

ソフトウェアエンティティ(クラス、モジュール、関数など)を拡張する必要があると言われますが、変更することはできません。

説明

  • されていることを、拡張が閉鎖されている変更のために開いています
  • どんなにモジュールが「閉」であるか、変更することはできません閉じられた数はありません。それは完全に閉じることができないので、設計者は、彼が選択をするために閉鎖されるべき変更モジュールを設計しなければなりません。彼がしなければならない最初の変化の最も可能性の高いタイプを推測して、それらの変更を分離する抽象構築します
  • 当社では、最初の書き込みコード、変更がないと仮定した場合変更が発生した場合、将来的には同様の変化を分離する抽象を作成します。
  • プログラムへの変更需要の顔、新しいコードを追加することがされてではなく、既存のコードを変更するよりも、実施しました。
  • 私たちはすぐに立ち上げた開発作業が発生する可能性の変化を知っていることを願っています。長い待ち時間の変化の可能性を特定し、より困難それは右の抽象化を作成することです。
  • オープン-閉じ原理は、コアのオブジェクト指向設計この原則に続いて、つまり、彼は主張し、オブジェクト指向技術の莫大な利益をもたらすことができ、再利用可能な、優れた柔軟性、保守性スケーラブルな開発者は、抽象的なによって行われた頻繁な変更の部分を示す唯一のプログラムは、しかし、アプリケーションの各部分のために、それは良いアイデアではありません故意に抽象的である必要があります。抽象化と抽象化自体の未熟拒否と同様に重要

依存関係逆転の原則

英語:と呼ばれる依存性逆転の原則、DIP

定義

高レベルのモジュールは両方とも抽象依存しなければならない、低レベルのモジュールに依存すべきではありません。抽象が詳細に頼るべきではありません、詳細は抽象的に依存しなければなりません。

説明

  • これは、意味のインターフェースプログラミングのための、プログラミングを実装していません
  • 実際には逆に依存していることが言える対象のロゴデザインのために書き込みがない場合は、すべての依存関係のプログラムが抽象的に終了したことを、プログラミングの詳細については、プログラミングのための抽象的であれば、考慮は重要でないプログラムを書くために、言語クラスやオブジェクトを設計しているインタフェース、逆にそれが設計のプロセスですの。

リヒターの置換原則

英語:リスコフの置換原則は、と呼ばれるLSP

定義

サブタイプは、その親タイプを置き換えることができなければなりません。

説明

  • あなたはソフトウェアエンティティを使用している場合は、親である、そして、子供は自分のクラスに適用する必要があり、それは親と子のクラスオブジェクト間の知覚できない差です。つまり、ソフトウェアの内部、親クラスは、プログラムの動作が変更されていない、そのサブクラスを交換しています
  • 親クラスを置き換えることができますサブクラスは、機能のソフトウェアユニットが影響を受けない場合にのみ、親が真に再利用することができ、およびサブクラスは親クラスに基づいて新しい動作を追加することができます。
  • 以来、修正モジュールなし親クラスを利用する別の型のサブタイプを拡張することになります。

デメテル

英語:デメテルの法則は、参照のLoD

定義

また、少なくとも知識の原則として知られています。2つのクラスが互いに直接通信する必要がない場合は、2つのクラスが直接相互作用することはできません。クラスが別のクラスの特定のメソッドを呼び出す必要がある場合は、第三者によるコールを転送することができます。

説明

  • デメテルは、基本的なイデオロギーであるクラス間の疎結合を重視
  • クラス間のより弱い結合が、より良い再利用は、弱結合のクラスが変更されている中で、クラスの普及が関係していることはありません。

インターフェイスの棲み分け原理

「西のデザインモード」で、この原則は明示的に述べたが、他のモードでは、実際にあるいは原則的に暗示されていないが。

英語:インタフェース棲み分け原理は、と呼ばれるISP

定義

別のクラスのクラスへの依存を最小限界面で確立されるべきです。それはメソッドをインターフェイスしないで、クライアントプログラムは頼るべきではありません。

説明

  • インターフェイス分離原則単一責任の原則は、特定のクロスオーバーのコンセプトを持っています。両方のためにそれらの間の結合を低減するために、凝集などを改善し、それがパッケージのアイデアを具現化しています。しかし、彼らは異なっています。
  • インターフェイス分離原則を強調するためには、インタフェースで、クライアントへのコミットメントより良い、そしてひたむきにそれを行いますインタフェースの変更の変更を強制するために、クライアント・プログラムによって行われた要求の可能性が発生した場合、できるだけ小さいクライアント・プログラムに影響を与えます。
  • インターフェイス分離原則の焦点があり、主に抽象的かつ全体的な枠組みを構築するために、インタフェースの制約のために隔離インタフェース依存性
  • シングル責任原則の焦点は、あるクラスの義務が、プログラムや詳細については、主な成果

概要

実際に特定の断面の概念上の多くの設計モード、のみデザインパターンがさらに一層混合することを含む、区別することは困難であり、属する判定するコードに従ってもし。そのため、常にそれが意味を理解し、最も重要である実際の開発に適用することができるものの種類、最後にアイデアに属しているに巻き込まれません

おすすめ

転載: www.cnblogs.com/call-me-devil/p/11031468.html