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

バックグラウンド

実生活では、Appleの電話を充電したいが、Androidの充電ケーブルしかない場合は、AndroidからAppleへのアダプターケーブルもあります。そのため、Androidケーブルとアダプターケーブルを使用してiPhoneを充電できます。

次に、ここのアダプタケーブルはアダプタとして機能します。

開発においても同様のシナリオに遭遇します。特定のビジネス機能を備えたメソッドはすでに存在しますが、現在のシステムのインターフェース仕様に準拠していません。この方法を再開発すると、コストが高くなります。現時点では、アダプタモードを使用してこの問題を解決できます。

回路図

左に示すように、2つのコンポーネントAとBを組み合わせる場合は、図の右側にあるCが必要です。このCはアダプターです。

アダプターモードとは

「「

クラスのインターフェースをクライアントが期待する別のインターフェースに変換します。アダプターを使用すると、インターフェースに互換性がないために他の方法では不可能だったクラスを連携させることができます。一致せず、連携できない2つのクラスは連携できます。)

アダプタモードは、主に次の要素で構成されています。

「「
  • ターゲットインターフェイス:現在のシステムビジネスで期待されるインターフェイス。抽象クラスまたはインターフェイスにすることができます。

  • Adapteeクラス:アクセスおよび適応されるのは、既存のコンポーネントライブラリのコンポーネントインターフェイスです。

  • アダプタクラス:アダプタのオブジェクトを継承または参照することにより、アダプタインターフェイスをターゲットインターフェイスに変換し、クライアントがターゲットインターフェイスの形式でアダプタにアクセスできるようにするコンバータです。

関係図は次のとおりです。

アダプターモード

コード

目標

アダプター

ClassAdapter

テストコード:

public static void main(String[] args){
    System.out.println("类适配器模式测试:");
    Target target = new ClassAdapter();
    target.request();
}

テスト結果は次のとおりです。

类适配器模式测试:
适配者中的业务代码被调用!

ご覧のとおり、アダプタモードはそれほど単純ではありません。ターゲットクラスを継承し、適応する必要のあるインターフェイスを実装するように、適応クラスを作成するだけです。

アダプタモードについての考え

ビジネスニーズを満たす既製のコンポーネントがあるが、このコンポーネントが新しいシステムのインターフェイス仕様に準拠していない場合。モードを適応させることができます。

アダプターモードは、詳細設計段階では考慮しないのが最善です。開発段階にある問題を解決するのではなく、稼働中のプロジェクトの問題を解決するためです。システムアナリストは、次の場合にアダプターモードの使用を検討しません。このモードで使用される主なシナリオは、アプリケーションを拡張し、システムを拡張し、元の設計に適合しない場合のコード変更のリスクを軽減するためにアダプターモードを検討することです。

過去におすすめ

QRコードをスキャンして、よりエキサイティングになります。または、WeChatLvshen_9を検索すると、返信してバックグラウンドで情報を取得できます

1.回复"java" 获取java电子书;

2.回复"python"获取python电子书;

3.回复"算法"获取算法电子书;

4.回复"大数据"获取大数据电子书;

5.回复"spring"获取SpringBoot的学习视频。

6.回复"面试"获取一线大厂面试资料

7.回复"进阶之路"获取Java进阶之路的思维导图

8.回复"手册"获取阿里巴巴Java开发手册(嵩山终极版)

9.回复"总结"获取Java后端面试经验总结PDF版

10.回复"Redis"获取Redis命令手册,和Redis专项面试习题(PDF)

11.回复"并发导图"获取Java并发编程思维导图(xmind终极版)

もう1つ:[マイベネフィット]をクリックして、さらに驚きを持ってください。

 

おすすめ

転載: blog.csdn.net/wujialv/article/details/109350408
おすすめ