美文网首页
设计模式笔记(8)--适配器模式

设计模式笔记(8)--适配器模式

作者: 球球球球笨 | 来源:发表于2018-05-31 11:30 被阅读0次

    适配器模式

    解决的问题是 在不该写原有模块的基础上快速地使其适应新的项目

    GOF对适配器模式的定义是:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

    下面直接上代码

    //客户期望的接口
    public class Target
    }
        public void Request()
        {
            "客户发起了普通的基本请求";
        }
    }
    //需要被适配的类
    public class Adaptee
    {
        public void SpecificRequest()
        {
            "客户发起了特殊请求";
        }
    }
    //Adapter
    public class Adapter extends Target
    {
        private Aadptee adaptee = new Adaptee();
        @override
        public void Request()
        {
            adaptee.SpecificRequest();
        }
    }
    

    判断使用适配器模式的一个简单的方法是:两个具有不同接口的类所做的事情是否相同或相似。

    笔记本充电实例

    电源接口类有两个:一个是220v,一个是110v
    代码如下

    public class PowerPort220v
    {
        public void powerSupply()
        {
            System.out.println("110v的接口向外输出了220v的电压");
        }
    }
    public class PowerPort110v
    {
        public void powerSupply()
        {
            System.out.println("110v的接口向外输出了110v的电压");
        }
    }
    
    public interface Adapter
    {
        void powerSupply();
    }
    
    public class Adapter110v extends PowerPort110v implements Adapter
    {
        Notebook notebook = new Notebook();
        public void powerSupply()
        {
            super.powerSupply();
            System.out.println("适配器将电压转换成了笔记本需要的");
            notebook.work();
        }
    }
    
    public class Adapter220v extends PowerPort220v implements Adapter
    {
        Notebook notebook = new Notebook();
        public void powerSupply()
        {
            super.powerSupply();
            System.out.println("适配器将电压转换成了笔记本需要的");
            notebook.work();
        }
    }
    
    public class Notebook
    {
        public void work()
        {
            System.out,println("WORK!");
        }
    }
    

    相关文章

      网友评论

          本文标题:设计模式笔记(8)--适配器模式

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