zoukankan      html  css  js  c++  java
  • 23种设计模式(17):适配器模式

    概述:

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

    类型:结构型模式。

    类图:

    适用性:

    1.你想使用一个已经存在的类,而它的接口不符合你的需求。

    2.你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口

    可能不一定兼容的类)协同工作。

    3.(仅适用于对象Adapter)你想使用一些已经存在的子类,但是不可能对每一个都进行

    子类化以匹配它们的接口。对象适配器可以适配它的父类接口。

    参与者

    1.Target

    定义Client使用的与特定领域相关的接口。

    2.Client

    与符合Target接口的对象协同。

    3.Adaptee

    定义一个已经存在的接口,这个接口需要适配。

    4.Adapter

    对Adaptee的接口与Target接口进行适配

    例子:

    
    Target 
    
    public interface Target {
    
    
    
        void adapteeMethod();
    
    
    
        void adapterMethod();
    
    }
    
    Adaptee 
    
    public class Adaptee {
    
    
    
        public void adapteeMethod() {
    
            System.out.println("Adaptee method!");
    
        }
    
    }
    
    Adapter 
    
    public class Adapter implements Target {
    
    
    
        private Adaptee adaptee;
    
    
    
        public Adapter(Adaptee adaptee) {
    
            this.adaptee = adaptee;
    
        }
    
    
    
        public void adapteeMethod() {
    
            adaptee.adapteeMethod();
    
        }
    
    
    
        public void adapterMethod() {
    
            System.out.println("Adapter method!");
    
        }
    
    }
    
    Client 
    
    public class Test {
    
    
    
        public static void main(String[] args) {
    
            Target target = new Adapter(new Adaptee());
    
            target.adapteeMethod();
    
    
    
            target.adapterMethod();
    
        }
    
    }
    

    result:

    
    Adaptee method!
    
    Adapter method!
  • 相关阅读:
    Workbooks 对象的 Open 方法参数说明
    OLDB读取excel的数据类型不匹配的解决方案
    使用OLEDB读取Excel
    C#锁定EXCEL工作表
    smple
    C# 获取当前文件、文件夹的路径及操作环境变量
    与eval()相关的技巧
    不写var的全局变量声明方式的一个副作用(Side Effects When Forgetting var)
    关于国内浏览器的userAgent识别
    for循环的效率改进写法二则
  • 原文地址:https://www.cnblogs.com/yuyu666/p/9743789.html
Copyright © 2011-2022 走看看