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!
  • 相关阅读:
    2016CCPC东北地区大学生程序设计竞赛 1003 HDU5924
    2016CCPC东北地区大学生程序设计竞赛 1001 HDU5922
    Codeforces Round #375 (Div. 2) D
    linux开发缩写
    unity实现玻璃效果
    商业智能在公安交通管理领域的应用
    unity shaderlab Blend操作
    某中国500强企业BI系统成功应用案例
    Unity 5.X扩展编辑器之打包assetbundle
    unity描边效果
  • 原文地址:https://www.cnblogs.com/yuyu666/p/9743789.html
Copyright © 2011-2022 走看看