其他分享
首页 > 其他分享> > 适配器模式

适配器模式

作者:互联网

定义:

适配器模式是将一个类的接口变换成客户端所期待的另一种接口,从而使原本因为接口不匹配而无法在一起工作的两个类能够在一起工作。

适配器在生活中还是很常见的,下面就是一个其中一种:电源适配器,目的是将220V电压输出成12V
在这里插入图片描述
就以电源适配器一个适配器模式的例子,我们生活电压是220V的,现在需要输出12V电压,通过电源适配器完成将220V转换成12V的作用。

220V电压类V220:

class V220 {
    void export220(){
        System.out.println("输出电压220V");
    }
}

我们期待的12V接口

interface IV12 {
	//输出12V
    void export12();

}

适配器Adapter继承V220同时又实现IV12 接口

class VAdapter extends V220 implements IV12 {

    @Override
    public void export12() {
    	//将220V转换成12V输出
        System.out.println("输出12V电压");
    }
}

执行测试:

    public static void main(String[] args){

        IV12 iv12 = new VAdapter();
        iv12.export12();

    }

输出结果:

输出12V电压

这样就通过适配器Adapter将原本220V的电压输出成我们期望的12V电压了。

适配器模式通用写法

目标角色Target:

interface Target {
    //目标角色自己的方法
    void targetMethod();
}

源角色Adaptee:

class Adaptee {

    public void adapteeMethod(){
        System.out.println("原方法");
    }
}

适配器Adapter

class Adapter extends Adaptee implements Target {
    @Override
    public void targetMethod() {
        adapteeMethod();
    }
}

目标角色的实现类ConcreteTarget

class ConcreteTarget implements Target {
    @Override
    public void targetMethod() {
        System.out.println("目标方法");
    }
}

测试代码:

class ComTest {

    public static void main(String[] args){

        //原有的业务
        Target target = new ConcreteTarget();
        target.targetMethod();

        //增加适配器
        target = new Adapter();
        target.targetMethod();
    }
}

优点

参考:设计模式之禅

正义啊 发布了82 篇原创文章 · 获赞 16 · 访问量 3万+ 私信 关注

标签:Target,220V,适配器,模式,public,12V,void
来源: https://blog.csdn.net/sjdjdjdjahd/article/details/103990886