美文网首页
设计模式-适配器模式-Adapter

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

作者: AdminFun | 来源:发表于2019-01-07 18:14 被阅读0次

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

    一、适配器的3个元素

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

    二、适配器的工作原理

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

    三、示例代码

    1、源产品
    /**
     * 作者: Created by AdminFun
     * 邮箱: 614484070@qq.com
     * 创建: 2019/1/4
     * 修改: 2019/1/4
     * 版本: v1.0.0
     * 描述: 产品-点烟器
     */
    public class Cigarette implements ICigarette {
    
        @Override
        public Object Cigarette() {
            return "这是一个点烟器,点烟器就必须实现点烟器接口";
        }
    }
    
    2、目标接口
    /**
     * 作者: Created by AdminFun
     * 邮箱: 614484070@qq.com
     * 创建: 2019/1/4
     * 修改: 2019/1/4
     * 版本: v1.0.0
     * 描述: 目标接口-USB接口
     */
    public interface IUSBInterface {
    
        Object USBInterface();
    }
    
    3、适配器
    /**
     * 作者: Created by AdminFun
     * 邮箱: 614484070@qq.com
     * 创建: 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();
        }
    

    相关文章

      网友评论

          本文标题:设计模式-适配器模式-Adapter

          本文链接:https://www.haomeiwen.com/subject/wpxprqtx.html