`

设计模式之适配器模式

阅读更多

适配模式的定义如下:

将一个类的接口转换成客户端所期待的另一个接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一个工作

 

适配器模式在生活中还是很常见的,比如你的笔记本上的电源适配器,可以使用在110-220V之间变化的电源,而笔记本还能正常工作

 

适配器模式的通用类图:




 从类图中可以得知适配模式主要设计到三个角色:

1.Target目标角色

该角色定义把其他类转换为何种接口,也就是我们期望的接口

 

2.Adaptee源角色

需要转换成目标接口的角色,他已经存在、运行良好的类或者对象,经过适配器角色的包装会成为一个新的角色

 

3.Adapter适配器角色

适配器模式的核心角色,其他两个角色都是已经存在的角色,而适配器角色是需要新建的,它的职责非常简单就是把源角色转换为目标角色

 

适配模式通用代码如下:

 

/**
 * 目标角色
 * 
 */
public interface Target {

    public void request();
}

 

/**
 *源角色 
 */
public class Adaptee {

    public void dosomething(){
        
        System.out.println("do some thing");
    }
}

 

/**
 * 适配器角色
 * 
 */
public class Adapter extends Adaptee implements Target {

    /**
     * 
     * @see com.huashao.chapter.chapter19.ch01.Target#request()
     */
    @Override
    public void request() {

        super.dosomething();
    }

}

 
 

public class Client {

    public static void main(String[] args) {
        
        Target target=new Adapter();
        
        target.request();
    }
}

 

 从通用类图以及代码中可以看出适配有如下特点:

1.适配器模式可以让两个没有任何关系的类在一起工作

2.增加了类的透明性

我们访问的target目标角色,但是具体的实现都委托给了源角色,而这些对高层模块是透明的,它们不需要关心

3.提高了类的复用性

源角色在原有系统中还是可以使用的,而在目标角色中可以充当新的成员

4.灵活性高

某一天,需求变了,不想使用这个适配器了,ok,删掉这个适配器就行了,其他代码不需要修改,就类似于可插拔

 

适配器模式的使用场景:

你有动机修改一个已经投产中的接口时,适配器模式就派上用场了

 

需求是多变的,可能需求并不是将一个类转换为目标角色,而是将多个类转换为目标角色,但是java规范中类只能单集成,那么如何使用适配器模式呢?

 

既然不能集成,那就只能使用组合方式了,我们把这种适配器模式称为对象适配器模式,上一种模式称为类适配器模式 

 

对象适配器模式类图如下:

 



 

  • 大小: 16.4 KB
  • 大小: 24.5 KB
分享到:
评论

相关推荐

    Java设计模式之适配器模式

    ### Java设计模式之适配器模式详解 #### 引言 在软件开发中,我们经常遇到需要使用已有的类库,但这些类库的接口与我们的需求不匹配的情况。这时,适配器模式(Adapter Pattern)便能派上用场。适配器模式是一种...

    设计模式之适配器模式与外观模式demo

    在软件设计领域,设计模式是一种经过时间和实践验证的解决方案,用于解决常见的...这个"设计模式之适配器模式与外观模式demo"资源为学习和实践这两种模式提供了宝贵的实例,对于提升编程技能和设计思维具有积极意义。

    深入浅出设计模式之适配器模式与外观模式

    ### 深入浅出设计模式之适配器模式与外观模式 在软件工程领域,设计模式被广泛地应用于解决常见的编程问题。其中,《Head First 设计模式》是一本非常受欢迎的经典著作,它通过生动有趣的例子帮助读者理解并掌握...

    java设计模式之适配器模式

    适配器模式是一种在软件工程中广泛使用的结构型设计模式,它允许两个不兼容的接口之间进行通信。在Java中,适配器模式扮演着重要的角色,尤其在处理遗留代码或者第三方库集成时,能够有效地解决接口不匹配的问题。...

    设计模式之适配器模式Java实现和类设计图

    适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,允许不兼容的接口之间进行通信。在这个Java实现中,我们将深入探讨适配器模式的两大类型:类适配器模式和对象适配器模式,并通过具体的代码示例和...

    设计模式之 适配器 Adapter C++ 源码

    设计模式之 适配器 Adapter C++ 源码 vs2019 工具,设计模式之 适配器 Adapter C++ 源码 vs2019 工具,设计模式之 适配器 Adapter C++ 源码 vs2019 工具,设计模式之 适配器 Adapter C++ 源码 vs2019 工具,设计模式...

    设计模式之适配器模式(Adapter Pattern)

    适配器模式是软件设计模式中的一种,它的主要目的是解决接口不兼容问题,使得原本由于接口差异无法协同工作的类能够协同工作。在实际的软件开发过程中,我们常常遇到这样的情况:旧有的系统或第三方库提供了丰富的...

    设计模式之适配器模式.docx

    适配器模式是一种设计模式,它的主要目的是解决接口不兼容的问题,使得原本因接口差异而无法协同工作的类能够一起工作。适配器模式的核心思想是通过一个中间适配器类来转换不同接口,使得原有类(被适配者)能够符合...

    java设计模式之适配器模式.zip

    适配器模式是一种在软件设计中广泛使用的结构型设计模式,它的主要目的是使不兼容的接口之间能够进行通信。在Java编程中,适配器模式能够帮助我们复用已有的类,或者解决新旧系统之间的接口不匹配问题,从而提高代码...

    JAVA设计模式之适配器模式.docx

    适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在Java中,适配器模式被广泛应用于各种场景,如文件描述符的处理和框架的日志记录。下面我们将深入探讨适配器模式的核心概念、结构、使用场景...

    23钟设计模式之适配器模式

    适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在上述代码示例中,适配器模式被用来解决洗衣机(Wash)和电视机(Tv)与不同插座接口(SanXiangChaZuo 和 ErXiangChaZuo)之间的兼容性问题。...

    c++-设计模式之适配器模式(Adapter Pattern)

    适配器模式(Adapter Pattern)是一种结构型设计模式,它允许将一个接口转换为客户端期望的另一个接口。适配器模式常用于解决由于接口不兼容而无法正常工作的类之间的协作问题。 适配器模式的组成 目标接口(Target...

    [结构型模式] head first 设计模式之适配器模式(Adapter)

    适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在软件工程中,当系统中存在一个已经存在的组件,但其接口不符合当前项目的需求时,适配器模式就能发挥作用。通过适配器,我们可以复用现有的...

Global site tag (gtag.js) - Google Analytics