适配器模式

定义:

将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。

 

实现:

适配器模式分为类结构型模式和对象结构型模式两种,前者类之间的耦合度比后者高, 用得较少

 

代码案例:

类结构模式:

这里的目的是Chicken的gege方法能适配Duck的gaga方法。

Duck:

public interface Duck {
    public void gaGa();
}

Chicken:

public class Chicken {
    public void geGe() {
        System.out.println("chicken ge ge");
    }
}

适配器类:

public class ClassAdaptor extends Chicken implements Duck {
    @Override
    public void gaGa() {
        geGe();
    }
}

测试:

public class AdaptorTest {
    public static void main(String[] args) {
        ClassAdaptor adaptor = new ClassAdaptor();
        adaptor.gaGa();
    }
}

结果:

 这里调用的适配器类的gaga方法,但是是gege方法被调用了。所以达到了适配器模式的目的。

 

对象结构模式:

Duck和Chicken不变,就改适配器类:

public class ObjectAdaptor implements Duck{
    public Chicken chicken;
    public ObjectAdaptor(Chicken chicken) {
        this.chicken = chicken;
    }
    @Override
    public void gaGa() {
        chicken.geGe();
    }
}

测试类:

public class AdaptorTest {
    public static void main(String[] args) {
        ObjectAdaptor adaptor1 = new ObjectAdaptor(new Chicken());
        adaptor1.gaGa();
    }
}

结果:

 对象结构模式与类结构模式区别是通过构造方法传参而不是继承类。

 

posted @ 2021-06-13 22:01  圣金巫灵  阅读(34)  评论(0编辑  收藏  举报