美文网首页程序员
设计模式-适配器模式

设计模式-适配器模式

作者: 阿树 | 来源:发表于2014-06-15 00:48 被阅读124次

**关于适配器模式 **
适配器模式主要让客户端代码可以统一调用统一接口。当两个类所做的事情相同或相似,但是具有不同的接口时,就可以使用适配器模式。

比如JDBC驱动软件,每一个数据库引擎的JDBC驱动软件都是一个介于JDBC接口和数据库引擎接口之间的适配器。
如下图所示:


在GoF的设计模式中,对适配器模式讲了两种类型,类适配器模式和对象适配器模式,由于类适配器模式通过多重继承对一个接口与另一个接口进行匹配,而C#、VB.NET、JAVA等语言都不支持多重继承(C++支持),也就是一个类只有一个父类,所以本文主要讲的是对象适配器。

**适配器的实现 **



从上图中可以看出,Adaptee类并没有MethodA()方法,而客户端需要使用这个方法。为使客户端能够使用Adaptee类,提供一个中间环节,即类Adapter。将Adaptee的API与Target的API衔接起来。

1.Client: 客户端需要与实现Target接口的类进行衔接使用。
2.Target(目标): Target可以是具体的或抽象的类。
3.Adaptee(源): 包含客户端需要的方法,可是接口与客户端不兼容。
4.Adapter(适配器): Adapter实现了Target的接口,且包含Adapter类的一个私有实例adapter。当客户端执行MethodA方法时,通过adapter实例调用MethodB方法。

代码实现:

public class Client {

    private Target target;
    
    public Client(Target target) {
        this.target = target;
    }
    
    public void MakeRequest() {
        target.MethodA();
    }
}

public interface Target {
    void MethodA();
}

public class Adaptee {
    public void MethodB() {
        System.out.println("MethodB called");
    }
}

public class Adapter implements Target {

    Adaptee adaptee = new Adaptee();
    
    public void MethodA() {
        adaptee.MethodB();
    }      
}

参考:
「1」:Adapter Design Pattern-blackwasp
「2」:JAVA 与模式
「3」:大话设计模式

相关文章

  • 简说设计模式之适配器模式

    前言:对于设计模式基础概念可以去看[简说设计模式之设计模式概述] 一、什么是适配器模式 适配器模式(Adapter...

  • 设计模式 - 目录

    设计模式01 - 单例模式 设计模式02 - 工厂模式 设计模式03 - 建造者模式 设计模式04 - 适配器模式...

  • 最常用的设计模式---适配器模式(C++实现)

    适配器模式属于结构型的设计模式,它是结构型设计模式之首(用的最多的结构型设计模式)。 适配器设计模式也并不复杂,适...

  • iOS设计模式(5)策略模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(3)适配器...

  • iOS设计模式(6)模板模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(3)适配器...

  • iOS设计模式(7)建造者模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(3)适配器...

  • iOS设计模式(4)抽象工厂模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(3)适配器...

  • iOS设计模式(1)简单工厂模式

    设计模式系列文章 《iOS设计模式(2)工厂模式》《iOS设计模式(3)适配器模式》《iOS设计模式(4)抽象工厂...

  • iOS设计模式(2)工厂模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(3)适配器模式》《iOS设计模式(4)抽象...

  • iOS设计模式(8)外观模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(3)适配器...

网友评论

    本文标题:设计模式-适配器模式

    本文链接:https://www.haomeiwen.com/subject/mmqjtttx.html