BKJIA限定特集】「PHPデザインパターントーク」では、オブジェクトモデルの構造にはいくつかの関係性があるため、構造パターン間に多くの類似点があることを学びました:オブジェクトの構成と組み合わされた継承と実装が主な関係ですPHP デザイン パターンの目的。
「PHP デザイン パターン」の詳細については、BKJIA の以前のレポートを参照してください: PHP デザイン パターン: 責任連鎖モデル PHP デザイン パターン: エージェンシー モデル
オブジェクト合成の最大の利点は、実際のコードを変更することなく、実行時の設定に基づいて関係を確立できることです。これは、クラスの継承とインターフェイスの実装に必要な操作です。実際、設計の一部であるクラス間ではなくオブジェクト間のリンクを変更することで、アプリケーションの機能を定義できます。
構造パターンのリスト
アダプター-ブリッジ-ファサード)
これら 3 つのモードの目的は競合結合です。
◆アダプター モード アダプター) オブジェクトを接続するために異なるインターフェイスを使用します。
◆ブリッジ モード ブリッジ) は、M の抽象化レイヤーと N の実装レイヤーを M* N ではなく N+M クラスに分離します。使用法;
◆外観モード ファサード) は、サブシステムにアクセスするための新しい統合インターフェイスを作成します。
複合デコレータ-プロキシ)
これら 3 つのパターンは同じオブジェクト インターフェイスを維持し、直交関係を透過的に追加し、クライアントは気付かないでしょう:
◆複合パターンは他のオブジェクトのコンテナ組織階層を追加し、ツリーを他のツリーのリーフとして再利用します
◆デコレーション モードは、多数のサブクラスの導入を避けるために、インターセプト メソッドを介して動作を追加することを許可します。
◆プロキシ モードは、まだ存在しないオブジェクト、またはアクセスが難しいオブジェクトに対する操作を許可します。
最後に、フライウェイト パターン (Flyweight) は、ID を持たない ValueObject の標準実装です。
元の名前: Practical Php Patterns: 構造パターンの概要 著者: Giorgio
出典: http://giorgiosironi.blogspot.com/2010/02/practical-php-patterns-structural.html