`
edr_
  • 浏览: 168690 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

设计模式-适配器模式

阅读更多
适配器模式
分两种:类适配器、对象适配器

适配器模式定义:
把一个类的接口变成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。属于结构型模式,需要有Adaptee(被适配者)和Adapter(适配器)两个身份。

1、类适配器:
当我们定义的方法中,例如下面test(Target target),需要传入一个Target类型的对象时,但是真正具体实现类Adaptee却没有实现该接口的。在不更改目标对象源码的情况下,可以使用类适配器,增加一个实现类Adapter继承自Adaptee以及实现满足定义接口Target。
package test.patterns.adapter;

class Adaptee {
	public void dosomething(){
		System.out.println("Do something special!");
	}
}

interface Target{
	void dosomething();
}
class TargetUsual implements Target{
	@Override
	public void dosomething() {
		System.out.println("Do something usual!");
	}
} 

class Adapter extends Adaptee implements Target{
	@Override
	public void dosomething() {
		super.dosomething();
	}
}
public class TestAdapter{
	public void test(Target target) {
		target.dosomething();
	}
	public static void main(String[] args) {
		Target usualTarget=new TargetUsual();
		Target specialTarget=new Adapter();
		TestAdapter testAdapter=new TestAdapter();
		testAdapter.test(usualTarget);
		testAdapter.test(specialTarget);
	}
}


2、对象适配器:
当我们需要将两个没有关系的类组合在一起使用,我们可以修改各自类的接口。但是如果我们没有源代码,或者,我们不愿意为了一个应用而修改各自的接口。使用Adapter,在这两种接口之间创建一个混合接口(混血儿)。实际上这是将组合方法(composition)和继承 (inheritance)方法综合运用。
package test.patterns.adapter;

class Adaptee_1 {
	public void dosomething(){
		System.out.println("Do something special!");
	}
}

class Usual{
	public void dosomething() {
		System.out.println("Do something usual!");
	}
}

class Adapter_1 extends Usual{
	private Adaptee_1 adaptee_1;
	public Adapter_1(Adaptee_1 adaptee_1) {
		this.adaptee_1=adaptee_1;
	}
	@Override
	public void dosomething() {
		super.dosomething();
		adaptee_1.dosomething();
	}
}
public class TestAdapter1{
	public static void main(String[] args) {
		Adaptee_1 adaptee_1 = new Adaptee_1();
		Usual usual = new Usual();//只是本身功能
		Usual usual1 = new Adapter_1(adaptee_1);//实现综合功能
		usual.dosomething();
		System.out.println("-----------");
		usual1.dosomething();
	}
}


    Have a nice day!
分享到:
评论

相关推荐

    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