zoukankan      html  css  js  c++  java
  • 适配器模式

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

      (外观模式 提供了一个统一的接口,用来访问子系统中的一群接口。外观模式定义了一个高层接口,让子系统更容易使用。)

           (适配器将一个对象包装起来以改变其接口;外观将一群对象“包装”起来以简化其接口;装饰者将一个对象包装起来以增加新的行为和责任)

    适配器模式:

    适配器模式有两种形式:对象适配器和类适配器。类适配器需要多重继承(java不支持多重继承。。),类适配器继承被适配者和目标类。

    对象适配器利用组合的方式将请求传送给被适配者。

    系统中有一个具有某个特定功能的类Adaptee,一个客户类Client――他需要一个实现Target接口的对象,和一个Target接口

    客户使用适配器的过程如下:

     (1)客户通过目标接口调用适配器的方法对适配器发出请求;

     (2)适配器使用被适配器者接口把请求转换成被适配器者的一个或多个调用接口;

     (3)客户接收到调用的结果,但并未察觉这一切是适配器在起转换作用。

    //Adaptee.java
    public class Adaptee{
             public void specialRequest(){
                       System.out.println("Called SpecificRequest() in Adaptee ");
             }       
    }
     
    //Client.java
    public class Client {
             public static void main(String[] args){
                       Target t =   ……     //new Adapter() ;
                       t.request();
             }
    }
     
     
    //Target.java
    public interface Target{
             public void request();
    }
    

    类适配器:(类适配器具有以下的两个特点:1.适配器类(Adapter)实现Target接口;2. 适配器类(Adapter)通过继承来实现对Adaptee类的重用。)

    3954160472831404095

    //Adapter.java
    public class Adapter extends Adaptee implements Target{
             public void request(){
                       this.specialRequest();
             }
    }

    对象适配器:(对象的适配器具有以下的两个特点:1.适配器类(Adapter)实现Target接口;2. 适配器类(Adapter)通过组合来实现对Adaptee类的重用。)

    3954160472831404109

    //Client.java
    public class Client {
             public static void main(String[] args){
                       Target t = new Adapter() ;
                       t.request();
             }
    }
     

    真实世界的适配器:

    Iterator(迭代器)接口和枚举接口,都可以遍历此集合类型内的每个元素,但不同的是,迭代器还提供了删除元素的能力。。

    参考Head First和http://miaoxiaodong78.blog.163.com/blog/static/1876513620070123473737/

  • 相关阅读:
    VMware 虚拟机扩容磁盘
    记录一次Jenkins多分支构建问题
    ceph 集群快速部署
    阿里云EMAS发布套餐订阅云服务
    我研究过的OA产品这是简单的总结
    Hello,OA!Hello,工作流!寻找OA和工作流的旅途记录
    疑难杂症1-去掉网站里的特殊编码&#65279
    IIS 平台NET无后缀名伪静态实现办法
    让人无语的面试题!!排序!你试试?
    优秀的大企业报告辅助撰写系统介绍
  • 原文地址:https://www.cnblogs.com/zhxiang/p/2322565.html
Copyright © 2011-2022 走看看