解析:アダプタモード
1819 ワード
アダプタモード定義:1つのクラスのインタフェースをクライアントが期待する別のインタフェースに変換し、インタフェースが一致しないため一緒に動作できない2つのクラスが一緒に動作できるようにします.クラスのアダプタモードとオブジェクトのアダプタモードの2つの形式があります.
クラスのアダプターモード:実装メカニズムは、アダプターがターゲットインタフェースTargetとアダプターインタフェースAdapteeの特性(アダプターインタフェースTargetを実装するためにアダプターを継承する)を持っている可能性があります.これにより、アダプターには2つの共通の属性と方法があります.このアダプタアダプタは、使用時に直接使用できます.
オブジェクトのアダプタ:オブジェクトアダプタは、アダプタに適合するオブジェクトAdapteeを対象とし、適合するオブジェクトAdapteeのオブジェクトをパラメータとしてアダプタに入力することができます.これにより、アダプタAdapterと適合するオブジェクトAdapteeは弱い結合(結合関係は依然として存在する)を形成し、パラメータ化が有益に拡張されます.
(1)ターゲットインタフェースTarget
(2)適切なインタフェースAdaptee
(3)アダプターの役割Adapter----オブジェクトレベル
(4)クラスアダプタHeavyAdapter---クラス
(5)テスト
なぜアダプタが必要ですか?AdapteeはTargetとは関係がないため、2つの間で適切なアダプタを作成する必要があります.分析から、アダプタはAdapteeを所有または継承し、Targetインタフェースを実現しなければ、適切なアダプタを作成できないことがわかります.
注意:資料リファレンスアダプタ(Adapter)モード
クラスのアダプターモード:実装メカニズムは、アダプターがターゲットインタフェースTargetとアダプターインタフェースAdapteeの特性(アダプターインタフェースTargetを実装するためにアダプターを継承する)を持っている可能性があります.これにより、アダプターには2つの共通の属性と方法があります.このアダプタアダプタは、使用時に直接使用できます.
オブジェクトのアダプタ:オブジェクトアダプタは、アダプタに適合するオブジェクトAdapteeを対象とし、適合するオブジェクトAdapteeのオブジェクトをパラメータとしてアダプタに入力することができます.これにより、アダプタAdapterと適合するオブジェクトAdapteeは弱い結合(結合関係は依然として存在する)を形成し、パラメータ化が有益に拡張されます.
(1)ターゲットインタフェースTarget
public interface Target {
void request();
}
(2)適切なインタフェースAdaptee
public class Adaptee {
public void specificRequest(){
System.out.println("specificRequest ");
}
}
(3)アダプターの役割Adapter----オブジェクトレベル
public class Adapter implements Target{
private Adaptee adaptee;
public Adapter(Adaptee adaptee){
this.adaptee = adaptee;
}
@Override
public void request() {
adaptee.specificRequest();
}
}
(4)クラスアダプタHeavyAdapter---クラス
public class HeavyAdapter extends Adaptee implements Target{
@Override
public void request() {
this.specificRequest();
}
}
(5)テスト
public class Test {
public static void main(String[] args) {
/* */
Adaptee adaptee = new Adaptee();
Target tar = new Adapter( adaptee);
tar.request();
/* */
Target hTar = new HeavyAdapter();
hTar.request();
}
}
なぜアダプタが必要ですか?AdapteeはTargetとは関係がないため、2つの間で適切なアダプタを作成する必要があります.分析から、アダプタはAdapteeを所有または継承し、Targetインタフェースを実現しなければ、適切なアダプタを作成できないことがわかります.
注意:資料リファレンスアダプタ(Adapter)モード