`
kidiaoer
  • 浏览: 822205 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

适配器模式

阅读更多
适配器模式

定义:将一个类的接口转换成客户希望的另外一个接口。A d a p t e r 模式使得原本
由于接口不兼容而不能一起工作的那些类可以一起工作。

解决问题:已经存在类似功能的类或接口,但是方法签名不一样。

适用性:

    * 你想使用一个已经存在的类,而它的接口不符合你的需求。
    * 你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口
可能不一定兼容的类)协同工作。
    * (仅适用于对象A d a p t e r )你想使用一些已经存在的子类,但是不可能对每一个
都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口。

    对象适配器比较好,以及如果使用类适配器的话,我们可能只用到一个方法,这样的话我们把他继承
过来的话就相当于类污染了。

就好比我们使用常量的时候,是继承常量类还是直接引用了。如果继承过来的话就造成了常量污染。

适配器的目的是将已有类的功能提供给客户类,是一个中间者的角色。

    类适配器是客户类有一个接口规范的情况下可用,此时适配类只需作为功能类的子类,并
实现接口并可,直接用功能类实现了客户类的要求。

而对象适配类是在客户类没有提供接口的情况下用的,适配类作为客户类的子类,并在其
中实例化一个功能类的对象,并调用此对象的方法实现适配,故称对象适配。

两者的区别我认为有以下几点

      1.类适配器模式需要创建自身来创建一个Adaptee,
        对象适配器模式可以直接使用一个已有的Adaptee的实例来转换接口。

      2. 类适配器继承了Adaptee,所以可以通过覆写来扩展SpecificRequest()
        对象适配器和Adaptee是包含关系不能扩展;(其实也可以扩展的见下面)

      3.类适配器模式因为是继承所以相对静态,而对象适配器模式是包含是组合相对
    灵活(可以通过写adaptee子类扩展功能)

那什么时候使用对象适配什么时候使用类适配呢.我想这可能而得取决于你所处理
问题所会影响到的因素吧.
两者的一些明显的区别是:类继承仅仅引入了一个新的类或接口,而无须间接引用所
适配的类的对象.要通过委托一个具体的适配类,使适配
类适配接口,因此无法适配所有的子类.这名话有点绕,那说的是什么意思呢?就是在
我们对一个类及它所有的子类进行匹配的时候,进行适配的类则总是不能胜任工作的.
但进行适配的类可以重定义(override)一些所适配的方法.而对象适配则很难.......
但是对象适配也有他自己的好处.很明显他是解耦的,他也允许进行适配的类可以与适
配类及其多个子类进行工作.




分享到:
评论

相关推荐

    JAVA设计模式(抽象类与适配器模式)

    今天我们要探讨的是JAVA设计中的两个重要模式:抽象类与适配器模式。 首先,我们来理解一下“抽象”。抽象是面向对象编程的核心概念之一,它帮助我们处理对象的复杂性。在Java中,抽象通常通过抽象类来实现。抽象类...

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

    在这个Java实现中,我们将深入探讨适配器模式的两大类型:类适配器模式和对象适配器模式,并通过具体的代码示例和UML类图来阐述其工作原理。 首先,我们来理解适配器模式的基本概念。适配器模式就像现实生活中的...

    设计模式之适配器模式

    适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,特别是在解决系统间的兼容性和接口不匹配问题时。适配器模式的核心思想是将一个类的接口转换成客户希望的另一个接口,使原本由于接口不兼容而无法...

    设计模式 - 适配器模式(C++实例)

    适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,特别是在解决系统间的兼容性和接口不匹配问题时。适配器模式的核心思想是将一个类的接口转换成客户希望的另一个接口,使原本由于接口不兼容而无法...

    java 动态代理模式 适配器模式

    Java动态代理模式与适配器模式是两种在软件设计中常用的设计模式,它们都有各自的优点和应用场景。在Java中,动态代理模式主要依赖于Java的反射API和InvocationHandler接口,而适配器模式则用于解决不同接口之间的...

    java设计模式之适配器模式

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

    java中适配器模式案例

    适配器模式是一种设计模式,它允许不兼容的类或接口之间进行通信,通过创建一个适配器类作为中间桥梁,使得原本不匹配的接口能够协同工作。在Java中,适配器模式广泛应用于系统集成、旧代码复用以及第三方库的兼容性...

    适配器模式案例代码

    适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在这个案例中,我们关注的是如何通过适配器模式解决实际编程问题。文章《适配器模式案例代码》提供了具体的实现示例,链接指向了CSDN博主...

    设计模式-适配器模式(讲解及其实现代码)

    适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,特别是在处理系统集成、遗留代码重用以及不同接口之间兼容性问题时。适配器模式的主要目的是将两个不兼容的接口融合在一起,使得原本无法直接协作...

    适配器模式demo源码

    适配器模式是一种常用的设计模式,它在软件开发中起到了桥梁的作用,允许两个不兼容的接口之间进行通信。在这个“适配器模式demo源码”中,我们可以深入理解这一模式的实现方式及其应用场景。 适配器模式的核心思想...

    设计模式系列之适配器模式

    适配器模式是一种软件设计模式,它在不同的接口之间起到了桥梁的作用,使得原本由于接口不兼容而无法协作的类能够协同工作。这种模式的核心思想是将一个类的接口转换成客户希望的另一个接口,从而使原有类能适应新的...

    设计模式的适配器模式的例子

    适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,允许不同接口的类之间进行通信。适配器模式的核心思想是将一个类的接口转换成客户期望的另一个接口,使得原本由于接口不兼容而无法一起工作的类...

    实验七:适配器模式.rar

    适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在本实验中,我们将深入探讨适配器模式的概念、应用场景以及如何在实际编程中实现它。适配器模式通常分为类适配器和对象适配器两种形式。 ...

    适配器模式源代码

    适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,允许不兼容的接口之间进行通信。在这个源代码实例中,我们看到的是如何通过适配器模式来实现不同对象之间的协作,使得原本无法直接交互的系统组件...

    设计模式C++学习之适配器模式(Adapter)

    适配器模式(Adapter)是软件工程中一种常用的设计模式,它允许两个不兼容的接口之间进行通信。在C++编程中,适配器模式能够帮助我们复用现有的类,或者将第三方库的接口与我们的系统接口进行对接,从而提高代码的可...

Global site tag (gtag.js) - Google Analytics