zoukankan      html  css  js  c++  java
  • Adapter

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

    系统的数据与行为正确,但接口不符合时,我们应该考虑适配器模式,目的是使控制范围之外的一个原本对象与某个接口匹配。适配器模式主要应用于希望复用一些现存的类,但接口又与复用环境要求不一样的情况。

    生活中的例子:
    在现实生活中,像这种适配器我们经常见到,而且还是经常使用它,如:手机(深信大家都见过),我们手机在充电的时候,不可能直接在220V电源上直接充电,而是手机“充电器”进行转换成手机需要的电压才可以正常充电,否则就不可以完成充电,这个“充电器”就起到了适配的作用。

    适配器分两种:类适配器 与 对象适配器 ,由于类适配器需要通过多重继承来实现,这里讲得主要是对象适配器。

    public abstract class Target {
    
        public abstract void request();
    
    }
    public class Nomal extends Target {
    
        @Override
        public void request() {
            System.out.println("Nomal Request ! ");
        }
    
    }
    public class Adaptee {
    
        public void specificRequest() {
            System.out.println("Specific Request ! ");
        }
    
    }
    public class Adapter extends Target{
    
        private Adaptee adaptee = new Adaptee();
        
        @Override
        public void request() { 
            //这样就可以把表面上调用Request的方法变成实际调用的SpecificRequest。
            adaptee.specificRequest();
        }
    
    }
        public static void main(String[] args) {
            Target t1 = new Nomal();
            t1.request();
            Target t2 = new Adapter();
            t2.request();
        }

    打印结果:

    Nomal Request !
    Specific Request !

  • 相关阅读:
    datasnap的监督功能【3】-TCP链接监督功能
    实体服务规则或值更新设置字段锁定性
    设置指定的单据视图
    启动或停止IIS
    SSMS2014清除登录记录
    未授予用户在此计算机上的请求登录类型
    采购合同手动下推采购订单提示没有NAME属性
    审批流消息中无法获取明细字段
    费用申请单反写费用合同提示第2行总金额超出,但是实际未超出
    调试手机端
  • 原文地址:https://www.cnblogs.com/xuekyo/p/2610577.html
Copyright © 2011-2022 走看看