`
lyx_2709
  • 浏览: 314652 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

适配器模式(adapter)

阅读更多

为一个接口提供缺省实现,这样子类可以从这个缺省实现进行扩展.而不必从原有接口进行扩展.作为适配器模式的一个特例,缺省适配模式在java语言中有着特殊的应用.(引用java模式书)

adapter是一个非常常用的设计模式.
像windows的每个窗口,事件很多个.关闭,移动,最大化,最小化,
java代码设计如下:
interface 窗口{
public void 关闭();
public void 移动();
public ovid 最大化();
...
...
}
如果客户点击了关闭按钮,java类实现如下:
Frame implements 窗口{
public void 关闭(){
System.out.println("关闭窗口");
}

public void 移动()[
}
public ovid 最大化(){
}
...
...
}
这里面我们可以看出,我们关注的只有关闭按钮触发的事件,其它的我们不用管.但是在java类中,我们必须把接口的所有方法都给实现.这样我们连一些没有用的方法也得给实现.那怕是空实现.


下面我们来建一个抽象类来实现这个接口.
public abstract Frame implements 窗口{
public void 关闭(){

}

public void 移动(){
}
public ovid 最大化(){
}
...
...
}
这里我们可以看出,抽象类给每个接口一个空的实现,那我们都可以在抽象类的基础上进行扩展。关闭功能实现如下:
public CloseFrame extends Frame{
public void 关闭(){
System.out.println("关闭窗口");

}
}

像在java中的事件处理都是用适配器模式来实现的。接口,抽象类都是已经写好的。我们只需要实现具体功能的类就可以了。

再举个简单的例子:
假如存在如下接口:
interface TestInterface{
void test1();
void test2();
void test3();
}
如果我们只关注test1接口应该怎样写呢。
abstract class TestAbstract implements Test{
public void test1(){
}
public void test2(){
}
public void test3(){
}
}
class TestTest1 extends TestAbstract{
public void test1(){
System.out.println("方法1实现");
}
}
那么在什么情况下用相信大家已经能看得出来了吧。假如你不准备实现接口的所有方法。就可以建一个抽象类来实现这个接口的所有方法,当然这里全都是空的实现.然后再写一个类继承这个抽象类就可以得到你想要的结果了.

 

 
分享到:
评论
2 楼 lyx_2709 2007-02-14  
适配器类的目的就是空实现接口的全部方法.要不然其它的类无法实现其中你想要的方法.适配器的作用就是从接口中实现某个有用的方法.其它的不用理会!
1 楼 cf1984007 2007-02-13  
大部分监听接口都存在相应的适配器类,每个适配器类都实现了相应的 监听接口。但是适配器中所存的方法提(body)都是空实现。

相关推荐

    适配器模式adapter,含源码下载

    适配器模式(Adapter Pattern)是一种结构型设计模式,它能将两个不兼容的接口连接在一起,使得原本由于接口不匹配而无法一起工作的类能够协同工作。在IT行业中,适配器模式广泛应用在系统集成、组件重用以及解决...

    java 汽车适配器(Adapter适配器模式)

    适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在Java中,适配器模式被广泛应用于解决系统间的兼容性问题,尤其是当我们需要将一个已有的类库或者对象与我们的系统接口相匹配时。汽车适配器的...

    PHP设计模式(五)适配器模式Adapter实例详解【结构型】

    适配器模式(Adapter Pattern)是一种结构型设计模式,它旨在解决不同接口之间不兼容的问题,使得原本不能协同工作的类可以协同工作。在PHP中,适配器模式可以帮助开发者将一个类的接口转换为客户期望的另一个接口,...

    设计模式——适配器模式(adapter)

    适配器模式(Adapter Pattern)是软件设计模式中的一种,其主要目的是解决系统中的接口不兼容问题,使得原本由于接口不匹配而无法一起工作的类能够协同工作。在本文中,我们将深入探讨适配器模式的概念、结构、作用...

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

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

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

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

    java设计模式之适配器模式

    适配器模式(Adapter Pattern)是通过创建一个新的对象(适配器),这个对象将原本不兼容的对象接口转换为客户端期望的接口,从而使两者能够协同工作。适配器模式可以分为类适配器和对象适配器两种类型。 1. 类...

    适配器(Adapter)模式

    适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在软件工程中,当系统中存在两种不兼容的接口或者类需要协同工作时,适配器模式可以发挥关键作用。通过适配器,我们可以复用现有的类,而无需...

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

    文件列表中的"adapter"可能包含了适配器模式的Java源代码文件,这些文件通常会包含以上提到的三个角色的定义。例如,可能会有`Target.java`(目标接口),`Adaptee.java`(被适配者类),以及`Adapter.java`(类...

    适配器模式(Adapter)demo

    适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在软件开发中,我们常常遇到这样的情况:一个系统中的组件需要与另一个系统或库中的组件交互,但它们之间的接口不匹配,这时候就需要适配器模式...

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

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

    设计模式之适配器模式

    2. 适配器(Adapter)类:这是适配器模式的核心,它实现了目标接口,并持有对适配者对象的引用。适配器类负责将适配者的接口转换为目标接口。 3. 适配者(Adaptee)类:这是需要适配的原始接口或类,它的接口与目标...

    C#设计模式—适配器模式应用实例

    3. **适配器(Adapter)**:这个类是适配器模式的核心,它实现了目标接口,并持有对适配者的引用,负责将适配者的接口转换为目标接口。 在这个实例中,我们有以下文件: - `App.config`:通常用于存储应用程序配置...

    适配器模式demo源码

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

    设计模式 之 “适配器模式[Adapter Pattern]”

    适配器模式(Adapter Pattern)是软件设计模式中的一种,其主要目的是使两个不兼容的接口之间能够协同工作。在IT行业中,我们经常遇到不同系统、库或组件之间的接口不一致,导致它们无法直接交互。适配器模式就提供...

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

    在`DesignMode_Adapter`这个压缩包文件中,可能包含了相关的C++源码示例,演示了如何创建和使用适配器模式。这些源码可能包括了目标接口、原始接口、适配器类的定义以及客户端如何通过适配器进行调用的示例。通过...

    Adapter(适配器模式)

    适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在软件工程中,当系统中存在已有的类或库,而我们希望使用它们的功能,但其接口与我们的需求不匹配时,适配器模式就显得尤为重要。通过适配器,...

    适配器模式案例代码

    适配器模式可以通过创建一个Adapter类,实现新的DBConnection2接口,内部持有DBConnection实例,并在Adapter类中转换调用方法,使得客户端可以统一地使用DBConnection2接口。 5. **实现注意事项**: - 适配器的...

Global site tag (gtag.js) - Google Analytics