• 适配器模式


        适配器模式(Adapter Pattern)就是对一个类做适配,使之符合客户端的需求,能够正常的工作。

        就像是变压器(Adapter),美国的生活电压是110V,中国的是220V,美国的电器要在中国使用就需要加上一个变压器(Adapter)。

        适配器模式也被称为包装模式(Wrapper Pattern),将已有的类进行包装,使之具有需求所需的接口。

        适配器模式有以下两种:类的适配器模式和对象的适配器模式。

        

        类的适配器模式的类图关系如下:

        

           Target:目标角色,包含所有期望拥有的接口

           Adaptee:现有的类,需做适配

           Adapter:适配Adaptee符合Target      

    public interface Target {   
        void sampleOperation1();
        void sampleOperation2();
    }
    

      

    public class Adaptee {
        public void sampleOperation1(){}
    }
    

      

    public class Adapter extends Adaptee implements Target {
       
        public void sampleOperation2(){
            // Write your code here
        }
    }
    

      对象的适配器模式的类图关系如下:

     

        对象的适配器模式与类的适配器模式的区别在于: Adapter与Adaptee的关系不是继承,而是关联。 Adapter直接调用Adaptee。

    public class Adapter implements Target {
        public Adapter(Adaptee adaptee){
            super();
            this.adaptee = adaptee;
        }
    
        public void sampleOperation1(){
            adaptee.sampleOperation1();
        }
    
        public void sampleOperation2(){
            // Write your code here
        }
    
        private Adaptee adaptee;
    }
    

      下面的情况下可以考虑使用适配器:

           1.系统需要使用现有的类,但是现有类的接口又不符合。

           2.需要创建一个可以重复使用的类,用于一些彼此没有太大关联的类,包括一些可能在将来引进的类。

            

          Enumeration接口较Iterator较早出现在JDK中,2者之间如果不做转换,使用起来是比较麻烦的。可能定义了一个Iterator,但方法的参数是Enumeration。

          下面就是Iterator适配到Enumeration的类图。

          

            

    public class Itermeration implements Enumeration{
    	private Iterator it;
    
        public Itermeration(Iterator it)
        {
            this.it = it;
        }
    
        public boolean hasMoreElements()
        {
            return it.hasNext();
        }
    
        public Object nextElement() throws NoSuchElementException
        {
    		return it.next();
        }
    }
    

      JDBC使得Java语言可以连接到数据库,并使用SQL操作数据。各具体的数据库要适配JDBC使其能够适用于具体的数据库连接。

          使用适配器模式时有一些需要注意的事:

          1.目标接口可以省略,源是一个接口,适配器需要实现源中的方法,可以不必实现不需要的方法,见缺省适配模式。

          2.适配器可以是抽象类,见缺省适配模式。

          3.带参数的适配器模式,适配器可以根据参数返回一个合适的类给客户端。

  • 相关阅读:
    PyTorch-->Tensors(张量)
    Pytorch-->PyTorch学习(1)
    信息安全四大顶会!!!
    2020春季数据库-->关系演算安全性的理解
    2020春季数据库-->三级模式和两层映像
    2020寒假->Web编程(1)
    Httprequseter 插件使用
    YII2 客户端验证
    谷歌网页全屏截图
    后台新订单提醒
  • 原文地址:https://www.cnblogs.com/lnlvinso/p/3839826.html
Copyright © 2020-2023  润新知