• JAVA设计模式---适配器模式


    1、几种关联模式的联系:

    适配器模式:
    将一个类的接口,转换成客户期望的另一个接口,适配器让原本接口不兼容的类可以合作无间。

    外观模式:
    提供了一个统一的接口,用来访问子系统的一群接口,外观定义了一个高层接口,让子系统更容易使用。实现了客户和子系统之间的松耦合

    两者区别在于:
    外观模式的意图是简化接口,而适配器的意图是将接口转换成不同接口。
    当需要使用一个现有的类而其接口并不符合你的需要时,使用适配器;当需要简化并统一一个很大的接口或者一群负责的接口时,使用外观。

    与装饰者区别:
    适配器将一个对象包装起来以改变其接口,装饰者将一个对象包装起来以增加新的行为和责任。

    2、实例:

    旧的枚举器Enumeration(interface)包含如下元素:
      hasMoreElements();
      nextElement();

    新的迭代器Iterator(interface)包含如下元素:
      hasNext();
      next();
      remove();

    面对旧的遗留代码,如果需要对接新的代码,这时就用到了适配器,实现代码如下:

    public class EnumerationIterator implements Iterator {
        Enumeration enum;
    
        public EnumerationIterator(Enumeration enum) {
            this.enum = enum;
        }
    
        @Override
        public boolean hasNext() {
            return enum.hasMoreElements();
        }
    
        @Override
        public Object next() {
            return enum.nextElement();
        }
    
        @Override
        public void remove() {
            throw new UnsupportedOperationException();
        }
    }

    3、适配器或外观模式需要遵循 “最少知识”原则,实施方针如下:

    就任何对象而言,在该对象的方法内,我们只应该调用属于以下范围的方法:
      1)该对象本身;
      2)被当做方法的参数而传递进来的对象;
      3)此方法所创建或实例化的任何对象;
      4)对象的任何组件(组件<==>被实例)
    即:如果某对象是调用其他的方法的返回结果,不要调用该对象的方法。

  • 相关阅读:
    MyBatis动态SQL
    Mybatis基础配置
    MyBatis的手动映射与模糊查询
    Struts2框架和SpringMvc框架的区别
    Mybatis和Hibernate框架的区别
    Servlet
    JSP数据交互(二)
    JSP数据交互(一)
    Spark朴素贝叶斯(naiveBayes)
    【安卓开发】Android为什么选择binder
  • 原文地址:https://www.cnblogs.com/hunterCecil/p/5692246.html
Copyright © 2020-2023  润新知