#デザイン パターンとは
デザイン パターンは、繰り返し使用され、ほとんどの人に知られている一連のコード設計エクスペリエンスです。要約すると、それは特定の言語とは何の関係もなく、一種の思想です。 オブジェクト指向の思考をマスターすることによってのみ、デザイン パターンをより深く理解できるようになり、その逆も同様です。 デザイン パターンは、ソフトウェア エンジニアリングの実践中にプログラマーによってまとめられた優れたプログラミング手法です。 デザインパターンは全部で23種類あります。 これらの 23 の設計パターンの本質は、オブジェクト指向設計原則の実践的な適用と、クラスのカプセル化、継承、ポリモーフィズム、およびクラスの関連付けと組み合わせの関係を完全に理解することです。 (推奨関連ビデオ チュートリアル:java ビデオ )
設計パターンの分類
1. 作成パターンクリエイティブ パターン (5 種類): シングルトン パターン、ファクトリ メソッド パターン、抽象ファクトリ パターン、ビルダー パターン、プロトタイプ パターン。 2. 構造モード 構造モード (7 種類): アダプター モード、デコレーター モード、プロキシ モード、アピアランス モード、ブリッジ モード、コンビネーション モード、フライウェイト モード。 3. 行動パターン行動パターン (11 種類): 戦略パターン、テンプレートメソッドパターン、オブザーバーパターン、反復サブパターン、責任連鎖パターン、コマンドパターン、メモパターン、状態パターン、訪問者パターン、仲介者パターン、通訳者パターン。
デザイン パターンの 6 つの原則
一般原則: 開始と終了の原則拡張にはオープン、変更にはクローズ。プログラムを拡張する必要がある場合、元のコードを変更することはできませんが、ホットスワップ可能な効果を実現するには、元のコードを拡張する必要があります。つまり、プログラムをスケーラブルにし、保守とアップグレードを容易にするためです。 この効果を実現するには、インターフェイスや抽象クラスなどを使用する必要があります。これについては、後で具体的な設計で説明します。 1. 単一責任の原則クラス変更の理由は複数あってはならない、つまり、各クラスは単一の責任を実装する必要があり、そうでない場合はクラスを分割する必要があります。 2. リスコフ置換原理 基本クラスが出現できる場所には必ず、サブクラスが出現する可能性があります。 Liskov 置換原則は継承再利用の基礎です。派生クラスが基本クラスを置き換えることができ、ソフトウェア ユニットの機能が影響を受けない場合にのみ、基本クラスを真に再利用でき、派生クラスは新しいクラスを追加することもできます。基本クラスの基礎の動作。 リヒター置換原則は、「オープン-クローズド」原則を補足するものです。 「オープン-クローズド」原則を実現するための重要なステップは抽象化です。基本クラスとサブクラス間の継承関係は抽象化の特定の実装であるため、リスコフ置換原則は抽象化を達成するための特定の手順の仕様です。 Liskov 置換原則では、サブクラスは親クラスのメソッドを上書きまたはオーバーロードしないように努めるべきです。親クラスは定義された構造を表し、この標準化されたインターフェイスを通じて外部と対話するため、サブクラスはそれを無造作に破壊すべきではありません。 3. 依存関係逆転の原則 インターフェイス指向プログラミングは、具体性ではなく抽象化に依存します。コードを記述するときに具象クラスを使用すると、具象クラスとは対話せず、具象クラスの上位インターフェイスと対話します。 4. インターフェイス分離の原則 各インターフェイスには、サブクラスによって使用されないが実装する必要があるメソッドはありません。そうでない場合は、インターフェイスを分割する必要があります。単一のインターフェイス (複数のインターフェイス メソッドを 1 つのインターフェイスに組み合わせたもの) を使用するよりも、複数の分離されたインターフェイスを使用する方が適切です。 5. デメテル原理 (デメテル原理) クラスが依存するクラスについての知識は少ないほど良いです。依存クラスがどれほど複雑であっても、ロジックはメソッド内にカプセル化され、パブリック メソッドを通じて外部に提供される必要があります。このようにして、依存クラスが変更された場合、クラスへの影響は最小限に抑えられます。 あまり知られていない原則のもう 1 つの表現は、「直接の友人とのみ通信する」です。クラス間にカップリング関係がある限り、それをフレンド関係と呼びます。結合は依存、関連、集約、結合などに分けられます。メンバー変数、メソッドのパラメータ、メソッドの戻り値に現れるクラスを直接の友達と呼びます。ローカル変数と一時変数は直接の関係はありません。馴染みのないクラスがクラス内のローカル変数として表示されないようにする必要があります。 6. 複合再利用の原則 継承ではなく、最初に合成/集約を使用するようにしてください。 推奨チュートリアル:以上がデザインパターンの概念を簡単に説明しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。