構造パターン:
- 中心的な役割:大きな問題を解決するために、このように全体的なクラス構造を拡大し、プログラムの構造から疎結合を達成することです
カテゴリー:•アダプタモード、プロキシモード、ブリッジモード、装飾的なパターン、組み合わせモード、アスペクトモード、フライ級
構造モデルの概要
互換性のないインターフェイスクラスで一緒に働くことができないので、原稿が一緒に働くことができるように、プロキシモードが実オブジェクト適応モードへのアクセスを制御する実オブジェクトのプロキシを提供します
多層構造の継承ブリッジモードを処理する、多次元シーンチェンジの処理は、各次元の継承構造は、独立して、関連する抽象化層に拡張することができる様々な寸法を分離するように設計されています。
コンバインモードでは統一葉オブジェクトとコンテナが呼び出しをオブジェクトに顧客を可能にする、「部分と全体」の階層を表現するために、ツリー構造にオブジェクト
装飾的なパターンは、動的オブジェクト、外観に追加機能を追加し、継承モードサブシステムより柔軟で使いやすいサブシステムを作り、統一された呼び出しインターフェースを提供します
フライ級の使用は、きめ細かい多数のオブジェクトの効果的な管理を実現するために、メモリを節約し、効率を改善共有します
アダプタアダプタモード:
アダプタモードとは何ですか? - クライアントが期待する別のインターフェイスへのクラスのインターフェイスは、変換します。ワークと連携するために互換性のないインターフェースのこれらのクラスは、そうでなければできないようにアダプタパターン。
ロールモデル:
ターゲット・インタフェース(ターゲット):顧客がインターフェースを期待しています。ターゲットインタフェースがあってもよい、特異的または抽象クラスであってもよいです。
- アダプター必要なクラス(Adaptee):アダプター必要なクラスまたはクラスフィッタ。 - アダプタ(アダプタ):ニーズが元のターゲット・インターフェースにインターフェースを変換するように適合されているオブジェクトをラップすることによって。
{クラスAdpateeパブリック ます。public void要求(){ System.out.printlnは( "完全なクライアントの要求機能の必要性!"); } }
//アダプタ(の組み合わせを使用して、オブジェクト・アダプタ・モード) パブリッククラスを実装ターゲット{アダプタ2 ;プライベートAdpatee Adaptee @Override 公共ボイドhandleReqを(){ adaptee.request(); } パブリックアダプタ2(Adpatee Adaptee){ スーパー()。 = Adaptee this.adaptee; } }
//适配器 パブリッククラス特殊なアダプタはAdpatee器具を拡張ターゲット{ @Override 公共ボイドhandleReq(){ super.request()。 } }
//客户端类 パブリッククラスクライアント{ 公共ボイドTEST1(ターゲットT){ t.handleReq()。 } パブリック静的無効メイン(文字列[] args){ クライアントC =新しいクライアント()。 Adpatee A =新しいAdpatee(); //ターゲットT =新しい特殊なアダプタ(); ターゲットTは、新しいアダプタ2()=。 c.test1(T)。 } }
パブリックインターフェイスターゲット{ ボイドhandleReq(); }