`

设计模式:适配器模式

阅读更多

适配器模式在现代流行的框架中经常用到。

当你想用一个已经存在的类,但这个类的接口与你要求的接口不一直;或者你想创建一个与没有兼容的接口或不相关类协作的可复用的类时候,适配器模式就能派上用场。

1、适配器的故事

我们用下面的例子来展示适配器模式,这个例子的目的是将Orange适配成Apple。



 如上图所示,AppleAdapter包含一个Orange的实例,并且继承自Apple。这看起来就像在Orange实例外加了一层AppleAdapter皮肤,Oranger现在就看起来像Apple实例了。

2、类图



 3、实例代码

class Apple {
	public void getAColor(String str) {
		System.out.println("Apple color is: " + str);
	}
}
 
class Orange {
	public void getOColor(String str) {
		System.out.println("Orange color is: " + str);
	}
}
 
class AppleAdapter extends Apple {
	private Orange orange;
 
	public AppleAdapter(Orange orange) {
		this.orange = orange;
	}
 
	public void getAColor(String str) {
		orange.getOColor(str);
	}
}
 
public class TestAdapter {
	public static void main(String[] args) {
		Apple apple1 = new Apple();
		Apple apple2 = new Apple();
		apple1.getAColor("green");
 
		Orange orange = new Orange();
 
		AppleAdapter aa = new AppleAdapter(orange);
		aa.getAColor("red");
	}
 
}

 上面的例子的确是最简单的适配器模式的例子了。双向适配器可能更加比较常用些。实现一个双通道的适配器,需要实现两种接口,包含两种对象实例。不过仍然比较理解。

4、JDK中的应用

java.io.InputStreamReader(InputStream) (returns a Reader)
java.io.OutputStreamWriter(OutputStream) (returns a Writer)

 

  • 大小: 18 KB
  • 大小: 28.8 KB
分享到:
评论

相关推荐

    Python 程序语言设计模式思路-结构型模式:适配器模式-将不兼容的接口转换为可兼容的接口

    适配器模式(Adapter Pattern)是一种结构型设计模式,旨在将一个类的接口转换为客户端期望的另一个接口,从而使原本由于接口不兼容而无法一起工作的类能够协同工作。适配器模式通过引入一个适配器类,解决了接口不...

    实验七:适配器模式.rar

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

    java设计模式之适配器模式

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

    设计模式之适配器模式

    适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,主要解决系统间接口不兼容的问题。适配器模式允许不同接口的类协同工作,通过创建一个适配器对象来转换不兼容的接口,使得原本由于接口不匹配而...

    .Net设计模式_适配器模式

    1. 类适配器模式:适配器类继承自待适配的类,并且实现目标接口。在.NET中,这意味着适配器类会扩展待适配类的功能,同时提供符合目标接口的方法。这种方式的优势在于可以利用继承的多态性,但缺点是无法适应多个...

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

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

    设计模式:可复用面向对象软件的基础.zip

    设计模式是软件工程中的一种重要概念,它代表了在特定情境下解决常见问题的最佳实践。这些模式经过时间的考验,被广泛应用于各种面向对象的软件开发中,以提高代码的可读性、可维护性和可复用性。本教程旨在深入讲解...

    23种设计模式--适配器模式

    适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在软件工程中,这种模式常被用来解决旧系统与新系统、第三方库或者不同组件之间的接口不匹配问题。适配器模式的核心思想是通过创建一个新的类...

    设计模式:基于C#的工程化实现及扩展(完整电子版)

    总之,《设计模式:基于C#的工程化实现及扩展》是一本对于C#开发者来说非常有价值的参考资料,它不仅讲解了设计模式的理论,还提供了丰富的实践案例,帮助读者掌握如何在实际项目中应用这些模式,提升软件开发的专业...

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

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

    第十六讲:适配器模式

    适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在软件工程中,当系统中存在一个已经存在的组件或者第三方库,但其接口与我们新设计的系统不匹配时,适配器模式就显得尤为重要。适配器模式通过...

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

    1. 类适配器模式: 在类适配器模式中,适配器类继承自目标接口,并且通常也包含对原始不兼容接口的引用。适配器类通过重写或实现目标接口的方法,调用原始接口的方法,从而达到接口转换的目的。这种方式在C++中常见...

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

    1. 类适配器模式:适配器类继承自原始接口或类,并实现新的目标接口。这种方式适用于目标接口和原始接口都是类的情况,但缺点是如果原始接口有多个,继承会导致类层次复杂。 2. 对象适配器模式:适配器类包含一个...

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

    - 接口的适配器模式:在Java中,通过定义一个空的接口实现类,然后由适配器类继承这个空的实现类,以满足Target接口的要求。这种方式在Java中不常见,因为Java支持多重继承,通常可以直接实现Target接口。 5. 具体...

    Java 23种设计模式10适配器模式.pdf

    #### 适配器模式:桥梁的角色 适配器模式是结构型模式的一种,其核心思想是将一个类的接口转换为客户期望的另一个接口。在软件开发中,经常会遇到现有类的接口不符合需求的情况,尽管该类的功能满足了客户类的需求...

    PHP5设计模式-适配器模式实现

    适配器模式是一种结构型设计模式,它的主要目的是使不兼容的接口能够协同工作。在实际开发中,我们可能会遇到这样的情况:一个类库或者服务提供了一个接口,而我们的代码需要使用另一个接口。适配器模式就充当了两者...

    设计模式——适配器模式

    适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在软件工程中,当系统中存在已有的类或组件,但其接口不符合当前系统需求时,适配器模式能起到桥梁的作用,使得旧的组件可以无缝地与新系统协作...

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

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

Global site tag (gtag.js) - Google Analytics