Java の 24 の設計パターンと 7 つの原則

高洛峰
リリース: 2016-12-12 13:33:55
オリジナル
1413 人が閲覧しました

1. 作成パターン

1. 抽象ファクトリー パターン: 特定のクラスを指定せずに、関連オブジェクトまたは依存オブジェクトのファミリーを作成するためのインターフェイスを提供します。
2. ジェネレーター パターンを使用して構築プロセスをカプセル化します。複雑なオブジェクトの構築をその表現から分離し、同じ構築プロセスで異なる表現を作成できるようにします
3. オブジェクトを作成するためのインターフェイスを定義します。どのクラスをインスタンス化するかはサブクラス次第です。ファクトリ メソッドでは、クラスがインスタンス化をサブクラスに延期することができます。
4. クラスのインスタンス プロセスが高価であるか、複雑である場合。 、プロトタイプ パターンを使用します。
5. シングルトン パターン: クラスにインスタンスが 1 つだけあることを確認し、グローバル アクセス ポイントを提供します。 ): 一般的な問題を解決するには、2 つ以上のパターンを組み合わせます。

2. 構造パターン

1. アダプター パターン (アダプター パターン): クラスのインターフェイスを、顧客が期待する別のインターフェイスに変換します。アダプターを使用すると、互換性のないインターフェイスを持つクラスがシームレスに連携できるようになります。

2. ブリッジ パターン (ブリッジ パターン): 2 つの異なるクラス階層に配置してブリッジ パターンを使用し、それらを独立して変更できます。
3. オブジェクトを結合できます。組み合わせにより、個々のオブジェクトとオブジェクトの組み合わせを処理するための一貫した方法を作成できます。
4. デコレーターは、機能を拡張するために、オブジェクトに責任を追加します。
5. 外観パターン (ファサード パターン): サブシステム内のインターフェイスのグループにアクセスするための統合インターフェイスを提供し、サブシステムを使いやすくします。パターン: クラスの 1 つのインスタンスが多数の「仮想インスタンス」を提供できるようにするには、フライウェイト パターンを使用します。

別のオブジェクトの代替またはプレースホルダーを提供して、このオブジェクトへのアクセスを制御します。 3. 動作パターン

1. 責任連鎖パターン: 責任連鎖パターンを通じて、各オブジェクトがリクエストを順番にチェックし、それに応答して処理したり、次のオブジェクトに渡したりすることができます。
2. コマンド パターン: 別のリクエスト、キュー、またはログを使用して他のオブジェクトをパラメーター化できるように、オブジェクトに「リクエスト」を含めます。

3. インタープリター パターン (インタープリター パターン) を使用します。言語のインタープリターを作成するためのインタープリター パターン

4. イテレーター パターン (イテレーター パターン): 内部表現を公開せずに集合オブジェクト要素内の各項目に順次アクセスするメソッドを提供します。
5. メディエーター パターンを使用します。関連するオブジェクト間の複雑な通信および制御メソッドを一元化します。
6. メモ パターン: オブジェクトを前の状態に戻す必要がある場合 (たとえば、ユーザーが「元に戻す」を要求した場合)、メモ パターンを使用します。オブザーバー パターン (オブザーバー パターン): オブジェクト間の 1 対多の依存関係を定義します。これにより、オブジェクトの状態が変化すると、それに依存するオブジェクトが通知され、自動的に更新されます。
8.内部状態が変化するとオブジェクトの動作が変化し、そのクラスが変化したように見えます。
9. アルゴリズムのファミリーを定義し、相互に置き換えられるようにします。パターンを使用すると、アルゴリズムを使用する顧客に依存せずにアルゴリズムの変更を行うことができます。
10. テンプレート メソッド パターン (テンプレート パターン): メソッド内でアルゴリズムのスケルトンを定義し、一部のステップをサブクラスに延期します。アルゴリズムの構造を変更せずに、アルゴリズムの特定のステップを再定義します。
11. ビジター パターン: オブジェクトの組み合わせに新しい機能を追加する必要があり、カプセル化が重要ではない場合は、ビジター パターンを使用します。


---- ------ -------------------------------------------- ------ --------------------------------------

セブンデザイン原則:

1. 単一責任の原則 [SINGLE RESPONSIBILITY PRINCIPLE]: 1 つのクラスが 1 つの責任を負います。
2. リスコフ置換原則 [LISKOV SUBSTITUTION PRINCIPLE]: 依存関係逆転の原則 [DEPENDENCE INVERSION PRINCIPLE]。 : 高レベルのモジュールは低レベルのモジュールに依存すべきではなく、両方ともその抽象化に依存すべきであり、抽象化は詳細に依存すべきではなく、詳細に依存すべきではありません。つまり、実装のためのプログラムではなく、インターフェイスのためのプログラムです。
4. インターフェイス分離の原則 [インターフェイス分離の原則]: 単一のインターフェイスを確立し、巨大で肥大化したインターフェイスを構築せず、インターフェイスの改良を試み、メソッドは最小限に抑えます。
5. Dimi 特別ルール [LOW OF DEMETER]: 低結合、高結合性
6. クラス、モジュール、関数などのソフトウェア エンティティは拡張に対してオープンである必要があります。
7. 組み合わせ/集合体再利用原則 [構成/集合体再利用原則 (CARP)]: 再利用の原則を達成するために、組み合わせと集合体の使用を減らしてください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート