アダプタモード:クラスのインタフェースは、顧客の期待に別のインターフェースに変換されます。元インターフェイスは、クラスと互換性がありませんように、アダプタがシームレスに共同作業をすることができます。
このモデルは、インタフェース変換アダプタを介して作成することができるので、非互換インタフェースは、互換性になります。これは、顧客がインターフェースの実装から分離することができます。、一定期間の後、我々はインターフェイスを変更したい場合は、アダプターは、パッケージの一部を変更することができ、顧客は異なるインタフェースと各変更のフォローに対処する必要はありません。
アヒル
/ ** * @author オイ 5月8日午前3時45分05秒の* @date 2019インディアン9午後 * @version 1.0.0 * / パブリック インターフェイスダック{ 公共 ボイドいんちき(); 公共 ボイドはフライ(); }
七面鳥
パブリック インターフェーストルコ{ // トルコだけ飲み込んであろう、croakしないであろう 公共 ボイド飲み込んを(); // 七面鳥が飛ぶ、遠くだけフライ 公共 ボイド(フライ); }
ワイルドターキー
パブリック クラスワイルドターキーは実装トルコ{ @Override 公共 ボイド(){ガツガツ食べるに するSystem.out.printlnは(「ガツガツ食べるガツガツ食べます...」); } @Override 公共 ボイドは(){フライ のSystem.out.println(「私は短距離飛行です」)。 } }
TurkeyAdapter
/ ** *七面鳥を梱包、それはアヒルのように見えます * @author オイを 5月8日の* @date 2019インディアン9日の午後3時53分40秒 * @version 1.0.0 * / パブリック クラス TurkeyAdapter 実装のダック{ 七面鳥七面鳥、 公共TurkeyAdapter(トルコトルコ){ この .turkey = トルコ; } @Override 公共 ボイドいんちき(){ turkey.gobble(); } @Override 公共 ボイドフライ(){ turkey.fly(); } }
テスト:
パブリック 静的 ボイドメイン(文字列[]引数){ TurkeyAdapter trukeyAdapter = 新しい TurkeyAdapter(新しいワイルドターキー())。 trukeyAdapter.quack(); trukeyAdapter.fly(); }