• 一天学习一个设计模式之适配器模式


      系统的数据和行为都正确,但接口不符时,我们应该考虑用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用希望用一些现存的类,但是接口又与复用环境不一致的情况。适配器模式讲了两种类型类适配器模式对象适配器模式。由于C#、java等语言不支持多重继承,也就是一个类只有一个父类,所以主要用的是对象适配器。

      

    ITarget(这是客户所期待的接口。目标可以是具体的类或抽象的类,也可以是接口)代码如下:

    public interface ITarget {
         void request();
    }

    Adaptee(需要适配的类)代码如下

    public class Adaptee {
        public void specificRequest(){
            System.out.println("特殊请求");
        }
    }

    Adapter(通过在内部包装一个Adaptee对象,把源接口转换成目标接口)代码如上

    public class Adapter implements ITarget {
        private Adaptee adaptee=new Adaptee();
        @Override
        public void request() {
            adaptee.specificRequest();
        }
    }

    客户端代码如下

    public class Client {
        public static void main(String[] args) {
            ITarget target=new Adapter();
            //对客户端而言就是调用的Target的Request方法
            target.request();
        }
    }

    何时使用适配器模式

      使用一个已经存在的类,但如果它的接口,也就是它的方法和你的要求不相同时,就应该考虑用适配器模式。

      两个类所做的事情相同或相似,但是具有不同的接口时要使用它。而且由于类都共享一个接口,使得客户代码如何?

      客户代码可以统一调用同一个接口,这样可以更简单、更直接、更紧凑。适配器模式属于“亡羊补牢”,适合于在代码的维护阶段,在双方都不太容易修改时再使用适配器模式进行适配。

             

  • 相关阅读:
    php大文件分片上传
    ckeditor粘贴上传图片
    视频断点续传+java视频
    php上传文件夹 ​
    批量下载
    PHP上传超大文件解决方案
    js大文件上传
    java+web文件的上传和下载代码
    Webupload+PHP上传大文件
    【hdu1280】前M大的数
  • 原文地址:https://www.cnblogs.com/gousheng107/p/8000203.html
Copyright © 2020-2023  润新知