1.概念:
适配器模式(Adapter Pattern)把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。
2.两种形式
a.类的适配器模式 b.对象的适配器模式
3.模拟问题:
现在假设我们的程序已经设计了接口run接口,但是现在有一个特殊的接口SpecificRun能更好的完成我们的功能,但是它和我们现有的run接口不匹配。那我们如何将它们一起工作呢?看下面的实例:
3.实例1:a.类的适配器模式
目标角色:
public interface Target {
public void run();
}
源角色:
public class Adaptee {
public void specificRun(){
System.out.println("新加的功能");
}
}
适配器角色:
public class ClassAdapter extends Adaptee implements Target {
@Override
public void run() {
this.specificRun();
}
}
用户角色:
public class TestAdapter {
public static void main(String[] args) {
ClassAdapter classAdapter = new ClassAdapter();
classAdapter.run();
}
}
运行结果:
新加的功能
3.实例2:b.对象的适配器模式
实例代码:
目标角色,源角色代码不变。
适配器角色:
public class ObjectAdapter implements Target {
private Adaptee adaptee;
public ObjectAdapter(Adaptee adaptee){
this.adaptee = adaptee;
}
@Override
public void run() {
// TODO Auto-generated method stub
adaptee.specificRun();
}
}
用户角色:
public class TestAdapter {
public static void main(String[] args) {
Adaptee adaptee = new Adaptee();
ObjectAdapter objectAdapter = new ObjectAdapter(adaptee);
objectAdapter.run();
}
}
运行结果:
新加的功能
将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 Adapter模式的宗旨就是,基于现有类所提供的服务,向客户端提供接口,以满足客户的期望。
最直接理解就是:我们需要实现某个功能,而现在实现这个功能的组件不必我们自己开发,可以通过第三方的组件来实现, 但第三方组件的接口与现在所定义的接口不一致(即类名,方法名不一样),那么在不修改两方接口的情况下,可以通过采用适配器模式来解决这一问题。
总结:根据客户端给出的组件是接口还是类,适配器通过实现接口或者继承类的方式来实现多态。 如果是实现接口,那么适配器则可以继承第三方组件,通过调用父类方法来完成功能。如果是继承,因为java中不支持多继承,适配器将具体操作委派给第三方 组件来完成。这是根据客户端给出的组件类型来区分。设计模式的原 则是:优先使用对象组合而不是类继承。这样适配器模式就很容易理解,就是客户端通过多态调用适配器,适配器通过使用第三方对象来完成具体功能。
相关推荐
### Java设计模式之适配器模式详解 #### 引言 在软件开发中,我们经常遇到需要使用已有的类库,但这些类库的接口与我们的需求不匹配的情况。这时,适配器模式(Adapter Pattern)便能派上用场。适配器模式是一种...
适配器模式是一种在软件设计中广泛使用的结构型设计模式,它的主要目的是使不兼容的接口之间能够进行通信。...适配器模式是Java开发者必备的设计模式之一,掌握它能帮助你更好地构建可扩展和可维护的系统。
适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在Java中,适配器模式被广泛应用于各种场景,如文件描述符的处理和框架的日志记录。下面我们将深入探讨适配器模式的核心概念、结构、使用场景...
适配器模式是一种结构型设计模式,允许不兼容的接口之间进行交互。在Java中,适配器模式主要通过接口或者抽象类来实现,以达到在不修改现有代码的基础上,使得原本无法一起工作的类协同工作。 适配器模式主要有两种...
### Java设计模式之适配器模式详解 #### 结构型模式概述 在软件工程领域,设计模式被视为一种标准解决方案,用于解决在特定上下文中经常出现的问题。设计模式按其目的和适用场景,大致可分为三种类型:创建型模式...
主要介绍了JAVA设计模式之适配器模式的的相关资料,文中示例代码非常详细,供大家参考和学习,感兴趣的朋友可以了解
同时,“[浪曦原创]JAVA设计模式 第1讲 抽象类与适配器模式(jzkangta).exe”应该是一个视频教程,可以帮助你更直观地学习。PPT文件“抽象类与适配器模式.ppt”则可能是教学幻灯片,列出了关键点和示例。最后,“demo...
适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,允许不兼容的接口之间进行通信。在这个Java实现中,我们将深入探讨适配器模式的两大类型:类适配器模式和对象适配器模式,并通过具体的代码示例和...
Java 设计模式之适配器模式的详解 适配器模式(Adapter Pattern)是一种结构型设计模式,用于将一个类的接口转换成客户端所期望的接口,使得原本不能一起工作的类可以一起工作。适配器模式也称为变压器模式或包装...
在Java编程领域,设计模式是一种解决常见问题的模板或最佳实践,被广泛应用于软件开发中以提高代码的可重用性、可维护性和可扩展性。适配器模式(Adapter Pattern)是其中的一种,它允许两个不兼容的接口之间进行...
适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,主要解决系统间接口不兼容的问题。适配器模式允许不同接口的类协同工作,通过创建一个适配器对象来转换不兼容的接口,使得原本由于接口不匹配而...
适配器模式(Adapter模式)是软件设计模式中的一种结构型模式,...适配器模式在Java设计模式中占据着重要的地位,是解决系统间集成问题的有效工具。理解并熟练掌握适配器模式,有助于提高软件设计的灵活性和可扩展性。
适配器模式(Adapter Pattern)是软件设计模式中的一种,其主要目的是解决接口不兼容问题,使得原本因为接口差异无法协同工作的类能够协同工作。在Java中,适配器模式通常分为类的适配器模式和对象的适配器模式。 ...
Java设计模式中的适配器模式和外观模式是两种在软件设计中经常使用的结构型模式,它们主要用于解决不同接口间的兼容性和复杂系统简化的问题。 适配器模式的核心思想是通过一个中间层(适配器)来使得原本接口不兼容...
java常用设计模式-适配器模式 适配器模式(Adapter Pattern)是一种结构型设计模式,它允许不兼容的接口之间进行通信。这种模式可以在不修改现有代码的情况下重用现有类,并且可以使不兼容的接口之间进行通信。 ...