デザインパターンGOF23アダプタモード

構造モデル

中心的な役割は:大きな問題を解決するために、このように全体的なクラス構造を拡大し、プログラムの構造から疎結合を達成することです

アダプター・パターンアダプター

現実の生活の例:Aコンバータ

2つの方法でアダプタ:

1、クラスアダプタ(継承)

/ **アダプタ必要なオブジェクト
 *の@author帆入るコード
 *
 * /
publicクラスAdaptee {
  ます。public void要求(){
   System.out.printlnは( "何かを行うことができます");
  }
}

/ **
 *アダプタ(アダプタクラス)
 * @author帆入るコード
 *
 * /
パブリッククラスザはAdapteeに器具を拡張ターゲットアダプタ{
 @Override
 公共ボイドhandleReq(){
   super.request()。
 }
}
/ **
 *クライアント
 * @authorセイル入るコード
 *
 * /
publicクラスクライアント{
  公共ボイド試験(ターゲットT){
   t.handleReq();
  }
  公共の静的な無効メイン(文字列[] args){
   クライアント新しい新しい= Cクライアント();
   ターゲットアダプタ新しい新しい= T();
   c.test(T);
  }
}
パブリックインターフェイスターゲット{
  公共ボイドhandleReq();
}
図2に示すように、オブジェクトアダプタ(組み合わせ)
/ **アダプタ必要なオブジェクト
 *の@author帆入るコード
 *
 * /
publicクラスAdaptee {
  ます。public void要求(){
   System.out.printlnは( "何かを行うことができます");
  }
}
/ **
 *アダプタ(オブジェクトアダプタ)
 * @author帆入るコード
 *
 * /
publicクラスAdapteeに実装ターゲット{延びアダプタ2
 プライベートAdaptee A;
 @Override
 公共ボイドhandleReq(){
   a.request();
 }
 パブリックアダプタ2を() {
  
 }
 パブリックアダプタ2(Adaptee A){
  this.a = A;
 }
}
パブリッククラスクライアント2 {
 公共ボイド試験(ターゲットT){
  t.handleReq()。
 }
 パブリック静的無効メイン(文字列[] args){
  クライアントC =新しいクライアント()。
  Adaptee A =新しいAdaptee();
  ターゲットT =新しいアダプタ2(A)
  c.test(T)。
 }
}
パブリックインターフェイスターゲット{
  公共ボイドhandleReq();
}

おすすめ

転載: www.cnblogs.com/code-fun/p/11330513.html
おすすめ