オブジェクト指向「の法則の6つの原則。」

  • シングル責任原則:クラスは、それが何をすべきかを行います。(原則が表現したいシングルの責任は「高い凝集」、ライト・コードへの究極の原則のみ6ワード「高凝集、低カップリング」、いわゆる高凝集は機能志向を完了するために、唯一のコードモジュールであります、ではなく、フィールドへの唯一のクラスは、それが何をすべき完了できるようにする場合、それは高い凝集の原則を実践に関連していない、このクラスは、単一の役割のオブジェクトである。他には、自転車は良いモジュール化されています車アセンブリ、フォークからダンパは、送信ブレーキに、すべての部品は、再組み立てされており、卓球ラケット良いショットが終了していない、分解することができ、ゴムベースを分割する必要がありそして自己集合することができる、優れたソフトウェアソフトウェアの再利用の目的を達成するようにシステムに、内部の各機能モジュールは、簡単に使用中の他のシステムを得ることができる必要があります。)

  • オープンクローズ原理:ソフトウェアエンティティは、拡張のために開いているが、修正のために閉鎖すべきです。(コードの元の行を変更することなく、することができます私たちは、元のシステムから派生する新しいクラスに、ソフトウェアシステムに新しい機能を追加する必要がある場合、理想的な状態で。オープンとクローズを行うために2重要:システムは拡張子が存在しないシステムの抽象クラスまたはインタフェースのポイントではない場合①抽象化は、重要であり、②変動包装、継承階層内の変数の様々なパッケージングシステム、もし交絡変数の複数変動は、パッケージには、本がブリッジ部のモードを説明するために、「デザインパターンを説明」を参照することができますか明確でない場合は一緒に、システムが複雑で混沌の変化は、となります。)

  • 依存関係逆転の原則:指向のプログラミング・インターフェース。(原則はぶっきらぼうにそれを置くことであり、抽象型の変数ではなく、特定の型として使用して、パラメータ型宣言、戻り値の型、参照型、の具体的な方法のいくつかは、その抽象型は、子の任意の型を指定できますので、代わりに、次のリヒターの置換原則を参照してください。)

  • リヒター置換原則:いつでもあなたは親型サブタイプを置き換えることができます。説明(リヒター置換原則に、氏バーバラ・リスコフの説明がはるかに複雑これ以上ですが、単に親たちは、サブタイプのタイプを使用することができます置くことができることを意味します。リヒター置換原則は、合理的な継承するかどうかを確認することができ、継承関係の継承は、リヒターの置換原則に違反した場合は、相続が間違っている必要があり、リファクタリングが必要。例えばは、長方形、正方形が間違っているので、猫は犬、猫や犬の継承、または継承を継承してみましょうあなたはリヒターシーンを置き換えるの原則の違反を発見する可能性が高いですので、注意する必要があります。サブクラスは親クラスの容量を増やすのではなく、親クラスの能力を低下させる必要があり、より多くの能力子類推の親クラス、マルチに能力があるため問題なくコースの小さなオブジェクトとしてオブジェクトの能力。)

  • インターフェイス分離の原則:インターフェースは小さく、専門可能にするには、包括的であってはなりません。(肥大化インターフェースは、インターフェースが容量を表しているので、1つのだけのインタフェースはまた、非常に粘着性でなければならないインターフェイス内機能を記述するべきである。例えば、それは詩に設計されており、4つのインタフェースをペイント、それぞれ、なしでなければならない、インターフェイス汚染であります4つのメソッドインタフェースとして設計されているかのように4つの方法は、インターフェイスに設計する必要があり、その後、このインタフェースは、すべての後、詩に精通し、塗装の人々の4種類はまだ少数派ですが、4つのインターフェイスに設計されている場合、使用することは困難です各インターフェイスがインターフェイスを多重化しているので、いくつかの可能性をいくつかのインタフェースを実装するインタフェースのレベルの適切な使用は、プログラムされなければならないかどうか、ロールの代わりに、契約の代わりに高いの.javaの能力を表します。重要な識別。)

  • 合成ポリマーの多重化の原則:優先順位の関係合成高分子やコードの再利用。(継承によるコードの再利用するためには、オブジェクト指向プログラミングであるとすると、例外の継承せずに、すべての教科書が説教することにより、初心者を欺く、簡単に言えば、クラス間でされたため、3があり、最も乱用されたものです継承関係及び依存関係を表す関係で関係有する関係、利用関係は、関係は、さらに、その協会の関連、集約及び合成の強さに応じて分割することができ、それは明らかである間HAS-Expressに原則希望を多重関係、合成ポリマーは、優先順位が-たの代わりの関係がある-されますが、自分で百度から百万の理由を見つけることができる関係を再利用可能なコード、理由まあ、でも中に、ことに留意すべきですJavaのAPIは、そのようなプロパティクラスとして継承の虐待の多くの例が存在することのHashtableクラスを継承し、Stackクラスは、明らかに間違っ継承Vectorクラスを拡張し、より良い練習は、プロパティでのHashtableクラス型のメンバーを配置することで、そのキーの文字列と値は、データを格納するために設定され、Stackクラスの設計はまた、Stackクラスに保存されているVectorオブジェクトデータに配置する必要があります。覚えています ライブ:継承もたらすのではなく、所有して使用することができ、いつでも継承しませツール、ツール)。

  • デメテル:デメテルも知識の最小の原則として知られているが、オブジェクトが他のオブジェクトの少しの知識として持っている必要があります。より複雑なシステムは、単純なファサードをユーザに提供することができ、フロントコントローラサーブレットやフィルターなどのJava Web開発は、それがファサードはありませんが、サーバーブラウザは無知動作しますが、フロントエンドコントローラによって、あなたはあなたの要求に応じて適切なサービスを得ることができます。Mediatorパターンは、例えば、コンピュータ、CPU、メモリ、ハードドライブ、ビデオカード、サウンドカードは、コンピュータのさまざまなデバイスに互いに協力する必要がうまく動作しますが、これらのものは直接接続されている場合は、説明するために簡単な例を与えることができますケーブルは、メディエーターのアイデンティティのメインボードとして、各デバイスはこのように、システムの結合を低減し、直接各デバイス間でデータを交換することなく互いに接続され、この場合には、非常に複雑です複雑。

发布了31 篇原创文章 · 获赞 97 · 访问量 55万+

おすすめ

転載: blog.csdn.net/qq_43390235/article/details/102655379