アダプタモード
アダプタモードは、クラスのアダプタモードとオブジェクトのアダプタモードに分けられます.クラスのアダプタモードは継承方式で実現され,オブジェクトのアダプタモードは組合せ方式で実現される.
Javaオブジェクト向けでは、複数の組合せを推奨し、継承を少なくします.両者の違いはまだ多いです.たとえば、組合せは実行期間で決定され、コンパイラで決定されます.組合せは松結合,継承は緊縮結合などである.もちろん具体的なシーンは具体的に分析しなければなりません.
アダプタモードの使用シーンは,システムが既存のクラスを使用する必要があるが,ユーザや他のニーズを完全に満たすことができず,できるだけ変更しないようにすると,このモードが役立ち,多重化効果が得られる.
次のコードがあります.
クラスAdapteeは、多重化が必要なクラスを表すアダプターです.
インタフェースTargetはターゲットクラスであり、実現する必要がある機能である.
クラスアダプタはアダプタクラスです
Javaオブジェクト向けでは、複数の組合せを推奨し、継承を少なくします.両者の違いはまだ多いです.たとえば、組合せは実行期間で決定され、コンパイラで決定されます.組合せは松結合,継承は緊縮結合などである.もちろん具体的なシーンは具体的に分析しなければなりません.
アダプタモードの使用シーンは,システムが既存のクラスを使用する必要があるが,ユーザや他のニーズを完全に満たすことができず,できるだけ変更しないようにすると,このモードが役立ち,多重化効果が得られる.
次のコードがあります.
クラスAdapteeは、多重化が必要なクラスを表すアダプターです.
インタフェースTargetはターゲットクラスであり、実現する必要がある機能である.
クラスアダプタはアダプタクラスです
/**
*
*/
public class Adaptee {
public Adaptee(){
}
public void eat(){
System.out.println("eat...");
}
}
/**
*
*/
public interface Target {
public void eat();
public void sleep();
}
/**
*
*/
public class Adaptor implements Target {
private Adaptee adaptee;
public Adaptor(Adaptee adaptee){
this.adaptee = adaptee;
}
@Override
public void eat() {
adaptee.eat();
}
@Override
public void sleep() {
System.out.println("sleep...");
}
}