ホームページ  >  記事  >  Java  >  Java クラシック設計パターンにおけるアダプター パターンの原理と使用法の詳細な説明

Java クラシック設計パターンにおけるアダプター パターンの原理と使用法の詳細な説明

黄舟
黄舟オリジナル
2017-08-07 10:49:531891ブラウズ

この記事では、主に古典的な Java 設計パターンであるアダプター パターンを紹介し、アダプター パターンの概念と原則を簡単に説明し、Java アダプター パターンの使用法と関連する注意事項を例の形式で分析します。この記事

この例では、Java の古典的な設計パターンのアダプター パターンについて説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

アダプター パターン は、クラスのインターフェースをユーザーが期待するものに適応させ、互換性のないインターフェースのために連携できない一部のクラスが連携して動作できるようにすることです。ユーザーの目的を達成するために必要な機能。

アダプター モードの利点:

1. アダプターを通じて、クライアントは統合インターフェイスを呼び出すことができ、操作はシンプルかつ直接的で、コード ロジックはコンパクトで使いやすいです。
2. コードの再利用、アダプター パターンは、さまざまな環境要件の問題を解決し、適応を通じてコードの再利用を実現します。
3. ターゲット クラスとアダプター クラスを分離し、新しいアダプター クラスを作成して現在のクラスを再利用します。開始と終了の原則を実装するために元のコードを繰り返し変更する必要はありません。

アダプター パターンには 2 つのタイプがあります

1. オブジェクト アダプター パターン: このアダプター パターンでは、アダプターはラップするクラスのインスタンスを保持します。この場合、アダプターはラップされたオブジェクトの物理エンティティを呼び出します。
2. クラスアダプターモード: このアダプターモードでは、アダプターは実装されたクラスから継承します (通常は多重継承)。

サンプルコード:


/**
* @description:
* 原有的接口功能,比如是给电动车充电功能
*/
public interface FirstBaseIf {
void charging();//充电
}
/**
* 要实现的操作功能
* @description:
*/
public class NewFunction {
public void powerWithTwo(){
System.out.println(“新功能:给电动汽车也可以充电啦”);
}
}
/**
*新建适配器类,来实现对原有接口FirstBaseIf的操作使用
* @description:
*/
public class FunctionAdapter implements FirstBaseIf {
private NewFunction plug;
public FunctionAdapter(NewFunction plug){
this.plug=plug;
}
@Override
public void charging() {//重写原有接口中的方法,从而实现接口转化
System.out.println(“通过适配器转化”);
plug.powerWithTwo();
}
}
//——–测试代码——————-
public class Test {
private FirstBaseIf plug;
public Test(FirstBaseIf plug) {
  this.plug = plug;
}
public static void main(String[] args) {
  NewFunction two = new NewFunction();
  FirstBaseIf three = new FunctionAdapter(two);//这里就是通过适配器实现转换
  Test note = new Test(three);
  note.charge();
}
public void charge() {
  plug.charging();//使用原有接口中的功能
}
}

実行結果:

適用可能なシナリオ:

抽象クラスの場合インターフェース、書き換える必要があるすべての抽象メソッド。

次に、インターフェースに定義されている抽象メソッドが多すぎて、サブクラスに多くの抽象メソッドが必要ない場合は、アダプターを設計する必要があります。 Java言語によるAndroid開発ではアダプタパターンがよく使われます。

以上がJava クラシック設計パターンにおけるアダプター パターンの原理と使用法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。