设计模式-适配器模式-Adapter

适配器模式的核心:让2个不匹配的接口在一起工作!

一、适配器的3个元素

1、源产品,例如本例中的汽车点烟器插口。
2、目标接口,例如本例中的USB接口。
3、适配器,也可以叫转换器,也就是本例中的点烟器。

二、适配器的工作原理

利用点烟器将点烟器插口转换成USB插口,点烟器则是适配器。

三、示例代码

1、源产品
/**
 * 作者: Created by AdminFun
 * 邮箱: [email protected]
 * 创建: 2019/1/4
 * 修改: 2019/1/4
 * 版本: v1.0.0
 * 描述: 产品-点烟器
 */
public class Cigarette implements ICigarette {

    @Override
    public Object Cigarette() {
        return "这是一个点烟器,点烟器就必须实现点烟器接口";
    }
}
2、目标接口
/**
 * 作者: Created by AdminFun
 * 邮箱: [email protected]
 * 创建: 2019/1/4
 * 修改: 2019/1/4
 * 版本: v1.0.0
 * 描述: 目标接口-USB接口
 */
public interface IUSBInterface {

    Object USBInterface();
}
3、适配器
/**
 * 作者: Created by AdminFun
 * 邮箱: [email protected]
 * 创建: 2019/1/2
 * 修改: 2019/1/2
 * 版本: v1.0.0
 * 模式:适配器模式:将不匹配的2个接口匹配在一起,使之能共同工作。
 * <p>
 * 分为类适配器和对象适配器
 * 对象适配器就是本例子中所讲,类适配器实现的效果一样,结构有差异而已。
 * <p>
 * 适配器模式的3个元素如下:
 * 1、source:源产品
 * 2、target:目标接口
 * 3、adapter:适配器/转换器
 * <p>
 * 适配器模式的工作原理如下:
 * 产品类实现源产品接口,适配器实现目标产品接口,在适配器中引入源产品,在实现方法中输出目标产品。
 */
public class PowerAdapter implements IUSBInterface {

    Cigarette cigarette;

    public PowerAdapter(Cigarette cigarette) {
        this.cigarette = cigarette;
    }

    @Override
    public Object USBInterface() {
        // 使用委托完成特殊功能,输出USB
        return null;
    }
}
4、使用
public static void main() {
        PowerAdapter adapter = new PowerAdapter(new Cigarette());
        adapter.USBInterface();
    }

猜你喜欢

转载自blog.csdn.net/weixin_34273046/article/details/87394427