`
GLC
  • 浏览: 112972 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

设计模式之适配器模式

 
阅读更多
[size=large]
设计模式之适配器模式

作用:为了将某个类的接口转换成客户端期望的另一个接口,消除由于接口不匹配所造成的类的兼容性问题。
按适配的内容分为三类:
1、类的适配器模式
2、对象的适配器模式
3、接口的适配器模式

1、类的适配器模式:一个有方法的类,等待目标接口适配;通过Adapter类,将等待适配的类的方法扩展到目标接口中。
等待适配的类
public  class Source{
	public void method1(){
		System.out.println(“this is original method”);
	}
}




目标接口
public interface Targetable{
	//与原类方法相同
	public void method1();

	public void method2();
}


适配类
public class Adapter extends Source implements Targetable{
	//重写接口中剩下的方法
	public void method2(){
		System.out.println(“this is the targetable method”);
	}
}


最后调用,通过实例化Adapter类,便可以调用等待适配类的方法了。

2、对象的适配器模式
基本思路跟前面的相同,只是这里不再继承Source类,而是持有待适配的类实例;来达到兼容和适配。
修改Adapter类

public class Adapter implements Targetable{
	private Source source;
	
	public Adapter(Source source){
		super();
		this.source = source;
	}
	
	public void method2(){
		System.out.println(“this is the targetable method!”);
	}

	public void method1(){
		source.method1();
	}
}



最后的调用实现过程跟第一种一样。

3、接口的适配器模式

它使用的情况比如:一个接口中有太多的抽象方法,当我们要使用这个接口时,
便需要实现接口中所有的抽象方法。但大多情况下、接口中的抽象方法我只需要其中一些。
所以、为了解决这个问题,我们借助一个抽象类、该抽象类实现了该接口,然后实现所有的方法。我们使用时、通过继承该抽象类,重写我们需要的方法就达到了想要的目的。

等待适配的接口

public interface Sourceable{
	public void method1();
	public void method2();
	…
}


自己写抽象类

public abstract class Wrapper implements Sourceable{
	public void method1(){}
	public void method2(){}
	…
}

public class SourceSub1 extends Wrapper{
	public void method1(){
		System.out.println(“the sourceable interface’s first ”);
	}
}

public class SourceSub2 extends Wrapper{
	public void method2(){
		System.out.println(“the source able interface’s second”);
	}
}


最后使用时,只需要实例化实现具体方法的类;调用相应的方法即可。
本想借此机会、学习画类图来呈现结果,但最后还是没能做到。以后希望自己能快速学习类图来展现和表达吧。

[/size]
分享到:
评论

相关推荐

    Java设计模式之适配器模式

    ### Java设计模式之适配器模式详解 #### 引言 在软件开发中,我们经常遇到需要使用已有的类库,但这些类库的接口与我们的需求不匹配的情况。这时,适配器模式(Adapter Pattern)便能派上用场。适配器模式是一种...

    设计模式之适配器模式与外观模式demo

    在软件设计领域,设计模式是一种经过时间和实践验证的解决方案,用于解决常见的...这个"设计模式之适配器模式与外观模式demo"资源为学习和实践这两种模式提供了宝贵的实例,对于提升编程技能和设计思维具有积极意义。

    深入浅出设计模式之适配器模式与外观模式

    ### 深入浅出设计模式之适配器模式与外观模式 在软件工程领域,设计模式被广泛地应用于解决常见的编程问题。其中,《Head First 设计模式》是一本非常受欢迎的经典著作,它通过生动有趣的例子帮助读者理解并掌握...

    java设计模式之适配器模式

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

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

    适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,允许不兼容的接口之间进行通信。在这个Java实现中,我们将深入探讨适配器模式的两大类型:类适配器模式和对象适配器模式,并通过具体的代码示例和...

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

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

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

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

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

    适配器模式是一种设计模式,它的主要目的是解决接口不兼容的问题,使得原本因接口差异而无法协同工作的类能够一起工作。适配器模式的核心思想是通过一个中间适配器类来转换不同接口,使得原有类(被适配者)能够符合...

    java设计模式之适配器模式.zip

    适配器模式是一种在软件设计中广泛使用的结构型设计模式,它的主要目的是使不兼容的接口之间能够进行通信。在Java编程中,适配器模式能够帮助我们复用已有的类,或者解决新旧系统之间的接口不匹配问题,从而提高代码...

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

    适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在Java中,适配器模式被广泛应用于各种场景,如文件描述符的处理和框架的日志记录。下面我们将深入探讨适配器模式的核心概念、结构、使用场景...

    23钟设计模式之适配器模式

    适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在上述代码示例中,适配器模式被用来解决洗衣机(Wash)和电视机(Tv)与不同插座接口(SanXiangChaZuo 和 ErXiangChaZuo)之间的兼容性问题。...

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

    适配器模式(Adapter Pattern)是一种结构型设计模式,它允许将一个接口转换为客户端期望的另一个接口。适配器模式常用于解决由于接口不兼容而无法正常工作的类之间的协作问题。 适配器模式的组成 目标接口(Target...

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

    ### Java设计模式之适配器模式详解 #### 结构型模式概述 在软件工程领域,设计模式被视为一种标准解决方案,用于解决在特定上下文中经常出现的问题。设计模式按其目的和适用场景,大致可分为三种类型:创建型模式...

    [结构型模式] head first 设计模式之适配器模式(Adapter)

    适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在软件工程中,当系统中存在一个已经存在的组件,但其接口不符合当前项目的需求时,适配器模式就能发挥作用。通过适配器,我们可以复用现有的...

Global site tag (gtag.js) - Google Analytics