`

适配器模式

阅读更多

适配器模式通俗的说是将两个联系不密切的类或类与接口通过另一个类做为纽带将两个类或类与接口联系起来。

举个简单的例子:中国制造的笔记本电源插孔可能是两个的,而美国的电源都是三个插孔的,如何让中国的笔记本在美国正常工作。我们就拿个适配器在他们之间转化一下,这样就能正常工作了。就是把不适应的接口通过第三个纽带让他们适合,能正常通信,这就是适配器模式。

适配器模式的宗旨就是,保留现有类所提供的服务,向客户提供接口,以满足客户更多的期望。其中有类适配器和对象适配器。

1、类适配器

所谓的类适配器,就是在已经定义了客户的希望实现功能的接口基础上,利用已经存在的类来实现客户需要的功能。这样就可以通过继承存在的类,并实现用户接口来满足用户的期望。

 

 

 

客户需要的新接口是wantEnglishToChinses(String Englsih);而原接口提供的类中的接口是EnglishToChinseseString English),原先的接口已通过测试,要想使原先的类适应现在的,只需做一个转换就可以了,避免了重新写类进行测试的工作。

代码的实现

 

(1)客户需要的新接口
/**
* 接口:IEnglishToChinese
* @return
*/
public interface IEnglishToChinese {
//英文转化为汉文
  public String wantEnglishToChinese(String english);
}
(2)原有的类中已经对该功能做了实现,但名字却不一样。
/**
* 函数:EnglishToChinese
* 功能:该函数实现英译汉的功能
* @return
*/
public class EnglishToChinese {
public String englishToChinese(String english){
       //具体方法省略
       return english+"的中文翻译是:需要查字典";
}
}
(3) 采用适配器类将两个类连接起来发生关系
/**
* 函数:EnglishToChineseAdapter
* 功能:该函数继承了EnglishToChinese函数,并实现IEnglishToChinese的接口
* @return
*/
public class EnglishToChineseAdapter extends EnglishToChinese implements
     IEnglishToChinese {
public String wantEnglishToChineseString english) {
     return super.englishToChinese(english);
  } 
(4) main函数中调用接口实现功能
public static void main(String[] arg){
//注意接口的调用,声明一个接口,接口指向的是一个实现类的实例。
 IEnglishToChinese englishToChinese=new EnglishToChineseAdapter();
     System.out.println(
englishToChinese.wantEnglishToChinese("english"));
}

 2、对象适配器

对象适配器在版本的更新和兼容方面有着很重要的作用,客户原先的类已经实现,但新版本同样也有实现,为了做到版本的兼容,把老版本的类视为target,新版本的类为adapteer,中间建立一个adapter。

代码如下:

(1)客户需要的应用的类
/**
* 类:EnglishToChinese * 
* @return
*/
public class EnglishToChinese {
//英文转化为汉文
  public String wantEnglishToChinese(String english){
		return “this is chinese”;
}
}
(2)新版本类
/**
* 函数:NewEnglishToChinese
* 功能:该函数实现英译汉的功能
* @return
*/
public class NewEnglishToChinese {
public String englishToChinese(String english){
       //具体方法省略
       return english+"的中文翻译是:需要查字典";
}
}
(3) 采用适配器类将两个类连接起来发生关系
/**
* 函数:EnglishToChineseAdapter
* 功能:该函数继承了EnglishToChinese函数,并实现IEnglishToChinese的接口
* @return
*/
public class EnglishToChineseAdapter extends EnglishToChinese {
	//声明一个原有接口的类的实例对象
NewEnglishToChinese newEtoC=new NewEnglishToChinese();
//重写父类的实现函数
public String wantEnglishToChineseString english) {
     return old.englishToChinese(english);
}
  } 
(4) main函数中调用接口实现功能
public static void main(String[] arg){
//注意接口的调用,它是new一个类的实例,采用了向上映射的关系,即前面是声明父类的一个对象,//该对象却指向子类的实例,这在程序中是很长见的
EnglishToChinese englishToChinese=new EnglishToChineseAdapter();
     System.out.println(englishToChinese.wantEnglishToChinese("english"));
}

 3、总结

         适配器模式和外观模式都包裹了一层,在实现上感觉很相似,但侧重点却不一样。适配器是将现有的类进行包装以适应已定接口的需要,而外观模式是内里实现复杂,为了方便用户的调用而通过接口方式掩盖内里实现,方便客户或子系统的应用。

  • 大小: 4.5 KB
分享到:
评论

相关推荐

    JAVA设计模式(抽象类与适配器模式)

    今天我们要探讨的是JAVA设计中的两个重要模式:抽象类与适配器模式。 首先,我们来理解一下“抽象”。抽象是面向对象编程的核心概念之一,它帮助我们处理对象的复杂性。在Java中,抽象通常通过抽象类来实现。抽象类...

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

    在这个Java实现中,我们将深入探讨适配器模式的两大类型:类适配器模式和对象适配器模式,并通过具体的代码示例和UML类图来阐述其工作原理。 首先,我们来理解适配器模式的基本概念。适配器模式就像现实生活中的...

    设计模式之适配器模式

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

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

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

    java 动态代理模式 适配器模式

    Java动态代理模式与适配器模式是两种在软件设计中常用的设计模式,它们都有各自的优点和应用场景。在Java中,动态代理模式主要依赖于Java的反射API和InvocationHandler接口,而适配器模式则用于解决不同接口之间的...

    java设计模式之适配器模式

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

    java中适配器模式案例

    适配器模式是一种设计模式,它允许不兼容的类或接口之间进行通信,通过创建一个适配器类作为中间桥梁,使得原本不匹配的接口能够协同工作。在Java中,适配器模式广泛应用于系统集成、旧代码复用以及第三方库的兼容性...

    适配器模式案例代码

    适配器模式是一种软件设计模式,它允许两个不兼容的接口之间进行通信。在这个案例中,我们关注的是如何通过适配器模式解决实际编程问题。文章《适配器模式案例代码》提供了具体的实现示例,链接指向了CSDN博主...

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

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

    适配器模式demo源码

    适配器模式是一种常用的设计模式,它在软件开发中起到了桥梁的作用,允许两个不兼容的接口之间进行通信。在这个“适配器模式demo源码”中,我们可以深入理解这一模式的实现方式及其应用场景。 适配器模式的核心思想...

    设计模式系列之适配器模式

    适配器模式是一种软件设计模式,它在不同的接口之间起到了桥梁的作用,使得原本由于接口不兼容而无法协作的类能够协同工作。这种模式的核心思想是将一个类的接口转换成客户希望的另一个接口,从而使原有类能适应新的...

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

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

    实验七:适配器模式.rar

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

    适配器模式源代码

    适配器模式是一种常用的设计模式,它在软件工程中扮演着重要的角色,允许不兼容的接口之间进行通信。在这个源代码实例中,我们看到的是如何通过适配器模式来实现不同对象之间的协作,使得原本无法直接交互的系统组件...

    设计模式C++学习之适配器模式(Adapter)

    适配器模式(Adapter)是软件工程中一种常用的设计模式,它允许两个不兼容的接口之间进行通信。在C++编程中,适配器模式能够帮助我们复用现有的类,或者将第三方库的接口与我们的系统接口进行对接,从而提高代码的可...

Global site tag (gtag.js) - Google Analytics