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

adapter模式

 
阅读更多
1、核心意图:
将一个类的接口转换成客户希望的另外一个接口,从而使得原本由于接口不兼容而不能一起工作的类可以一起工作。
该模式的目标是通过一个代理(这里是Adapter),在原来的类(Adaptee)和客户(Client)之间进行协调,从而达到兼容的目的。其核心是解决一致性的问题。

2、适配器(Adapter)模式的构成
• 目标抽象角色(Target) :定义客户要用的特定领域的接口
• 适配器(Adapter) :调用另一个接口,作为一个转换器
• 适配器(Adaptee) :定义一个接口,Adapter需要接入
• 客户端(Client) :协同对象符合Adapter适配器

3、适配器的分类
– 类适配器(采取继承的方式)
– 对象适配器(采取对象组合的方式)推荐

4、适用性
• 对象需要利用现存的并且接口不兼容的类。
• 需要创建可重用的类以协调其他接口可能不兼容的类。

5、身边例子
在我们实际生活中也很容易看到这方面的例子,比如我们要和一个外国人打交道,例如韩国 人,如果我们没有学习过韩语,这个韩国人也没有学习过我们汉语,在这种情况下,我们之间是很难进行直接交流沟通。为了达到沟通的目的有两个方法:
1)改造 这个韩国人,使其能够用汉语进行沟通;
2)请一个翻译,在我们和这个韩国人之间进行语言的协调。
显然第一种方式——改造这个韩国人的代价要高一些,我们不 仅要重新培训他汉语的学习,还有时间、态度等等因素。
而第二种方式——请一个翻译,就很好实现,而且成本低,还比较灵活,当我们想换个日本人,再换个翻译 就可以了。

6、代码实现
Target.java
public interface Target
{
	public void method1();
}


Adapter.java
public class Adapter extends Adaptee implements Target
{
	@Override
	public void method1()
	{
		this.method2();
	}
}


Adaptee.java
public class Adaptee
{
	public void method2()
	{
		System.out.println("执行方法!");
	}
}


Client.java
public class Client
{
	public static void main(String[] args)
	{
		Target target = new Adapter();
		
		target.method1();
	}
}
分享到:
评论

相关推荐

    设计模式之Adapter模式和代码实现

    Adapter模式是一种设计模式,主要目的是解决不同接口之间不兼容的问题,使得原本无法协同工作的类能够协同工作。在本文中,我们通过一个形如"形状"的范例来讲解Adapter模式的概念和实现。 首先,我们有一个抽象基类...

    C++ Adapter 模式

    Adapter模式是软件设计模式中的一种结构型模式,它在C++中的应用广泛,主要用于解决不同接口之间不兼容的问题,使得原本由于接口不匹配而无法一起工作的类能够协同工作。Adapter模式通过创建一个适配器对象,将旧的...

    ②设计模式之Adapter模式

    Adapter模式是一种结构型设计模式,它允许不兼容的类或接口之间进行通信。在软件开发中,我们常常遇到这样的情况:需要使用一个已经存在的类,但是它的接口与我们的需求不匹配,这时候Adapter模式就能派上用场。它...

    Adapter模式

    Adapter模式是一种软件设计模式,它允许不兼容的接口之间进行通信。在Java或者其他面向对象语言中,Adapter模式常被用来解决新旧系统对接、不同组件间的接口不匹配等问题。通过Adapter,我们可以让原本无法协作的...

    Java-从Decorator,Adapter模式看Java/IO

    例如,`InputStreamReader`是Adapter模式的一个实例,它将`InputStream`(处理字节流)适配为`Reader`(处理字符流),这样原本只能处理字节流的程序可以通过适配器使用字符流。同样,`OutputStreamWriter`则将`...

    设计模式1,FACADE模式,Adapter

    本文将深入探讨FACADE模式、Adapter模式以及Singleton和Proxy模式的基本概念、应用场景和关键要素。 首先,FACADE(外观)模式是一种接口型模式,它的主要作用是为复杂的子系统提供一个简单的接口,使得客户端无需...

    Adapter模式实战之重构鸿洋集团的Android圆形菜单建行

    【Adapter模式】 Adapter模式是一种设计模式,它允许不同接口的类之间进行通信。在Android开发中,Adapter模式常用于将数据源(如数组、列表)与视图(如ListView、GridView)进行适配,使得数据能够正确地显示在UI...

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

    介绍24设计模式中的Adapter模式,如果使用,实例讲解,等等

    Adapter模式练习

    Adapter模式是一种设计模式,它允许不兼容的类之间进行通信,通过创建一个适配器类作为中介,将原有接口转换成目标接口。在本练习中,我们将会深入探讨Adapter模式的原理、应用场景以及如何实现。 Adapter模式主要...

    FlowTag-Android流式布局,支持点击、单选、多选,支持初始化选中标签(只针对单选和多选模式),适合用于产品标签等,用法采用Adapter模式,和ListView、G.zip

    Android流式布局,支持点击、单选、多选等,适合用于产品标签等,用法采用Adapter模式,和ListView、GridView用法一样!2016/6/26号新添加初始化标签功能,使用非常简单,只要你的Adapter实现OnInitSelectedPosition...

    Adapter(适配器模式)

    - **适配器(Adapter)**:适配器类实现了目标接口,内部持有一个原始接口的引用或实例,负责将原始接口的调用转换为目标接口的调用。 - **客户端(Client)**:客户端使用目标接口进行操作,对适配器和原始接口一无所知...

    Java优良的Adapter模式:适配器模式

    自己总结了一个在性能和结构上都很容易理解的Adapter模式。  Adapter模式也叫适配器模式,是由GoF提出的23种设计模式的一种。Adapter模式是构造型模式之一,通过Adapter模式,可以改变已有类(或外部类)的接口...

    python实现Adapter模式实例代码

    Adapter模式,也称为适配器模式,是一种设计模式,它允许不同接口的类协同工作。在Python中,适配器模式常用于解决新旧接口不兼容的问题,通过创建一个新的类(适配器)来包装原有类(适配者),使得原本不兼容的...

    C++设计模式代码资源16_Adapter.zip

    《C++设计模式:Adapter模式解析与应用》 在软件工程中,设计模式是一种解决常见问题的可重用解决方案,它代表了最佳实践,并已被广泛接受。Adapter模式,也称为适配器模式,是设计模式中的一种,它允许两个不兼容...

    小例子背后的大道理——Adapter模式详解

    前文说到一位用户拿着业界标准开关(一个标准的StandardSwitcher,它依赖IStandardSwitchable接口才能工作,然而目前我们的灯并不支持这个...我想来解释一下Adapter模式的要点是什么,对Adapter模式的延展,以及对Adap

    1-7Adapter基础讲解

    在IT行业中,Adapter模式是一种设计模式,它在不同的接口之间起着桥梁的作用,允许不兼容的类协同工作。本主题将深入探讨Adapter的基础知识,帮助你理解其原理、应用场景及实现方式。 Adapter模式的主要作用是解决...

Global site tag (gtag.js) - Google Analytics