`

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

阅读更多

 

适配器模式(Adapter Pattern):

 

适配器模式将一个类的接口,转化成客户期望的另一个接口,适配器让原本接口不兼容的类可以合作无间。

 

 

现实生活中有很多适配器的例子,例如:各种电源、各种USB连接线...

 

这里我们使用狼变成羊的例子,也就是披着羊皮的狼,其中的羊皮就是适配器,要不狼混不到羊群

 

实践步骤:

1>我们新建一个通用接口(Sheep)

 

package com.kaishengit.adapter;

public interface Sheep {
	public void run();//跑
	public void ho();//叫
}

 

 2>我们新建一个适配器(SheepAdapter):实现Sheep接口

 

package com.kaishengit.adapter;

public class SheepAdapter implements Sheep {
	private Wolf wolf;
	/**
	 * 传进被适配对象(狼)
	 * @param wolf
	 */
	public SheepAdapter(Wolf wolf){
		this.wolf = wolf;
	}

	@Override
	public void ho() {
		wolf.ho();
	}

	@Override
	public void run() {
		wolf.run();
	}
}

 

 3>我们新建一个被适配对象:狼(Wolf)

 

package com.kaishengit.adapter;

public class Wolf {
	public void run() {
		System.out.println("狼跑");
	}
	
	public void ho(){
		System.out.println("狼嚎");
	}
}

 

 4>最后我们测试一下

 

package com.kaishengit.adapter;

public class Test {
	public static void main(String[] args) {
		//狼
		Wolf wolf = new Wolf();
		//披着羊皮的狼
		Sheep sheep = new SheepAdapter(wolf);
		
		sheep.run();
		sheep.ho();
	}
}

 

 运行结果:

--------------------

狼跑

狼嚎

--------------------

但是被适配对象的本质没有变

 

 

 

过程:

1>客户通过目标接口调用适配器方法对适配器发出请求

2>适配器使用被适配者接口把请求转化成被适配者的一个或多个调用接口

3>客户接收到调用结果,但并未察觉这一切是适配器在起转换作用

 

关于适配器模式:

 

1>当需要使用一个现有的类而其接口不符合你的要求时,就需要使用适配器模式

2>适配器模式将一个对象包装起来改变其接口,装饰者模式将一个对象包装起来增加新的行为戒责任

3>适配器的意图是将接口转换为不同的接口

 

-----end-----

 

2
14
分享到:
评论

相关推荐

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

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

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

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

    设计模式——适配器模式(adapter)

    适配器模式(Adapter Pattern)是软件设计模式中的一种,其主要目的是解决系统中的接口不兼容问题,使得原本由于接口不匹配而无法一起工作的类能够协同工作。在本文中,我们将深入探讨适配器模式的概念、结构、作用...

    .NET设计模式(8):适配器模式(AdapterPattern)

    ### .NET设计模式(8):适配器模式(AdapterPattern) #### 概述 在软件工程领域,尤其是在.NET框架下的应用开发过程中,经常会遇到这样的情况:现有的某个类或者组件的功能非常优秀,但由于其接口与当前项目的...

    Python 程序语言设计模式思路-结构型模式:适配器模式-将不兼容的接口转换为可兼容的接口

    适配器模式(Adapter Pattern)是一种结构型设计模式,旨在将一个类的接口转换为客户端期望的另一个接口,从而使原本由于接口不兼容而无法一起工作的类能够协同工作。适配器模式通过引入一个适配器类,解决了接口不...

    java设计模式之适配器模式

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

    设计模式 之 “适配器模式[Adapter Pattern]”

    适配器模式(Adapter Pattern)是软件设计模式中的一种,其主要目的是使两个不兼容的接口之间能够协同工作。在IT行业中,我们经常遇到不同系统、库或组件之间的接口不一致,导致它们无法直接交互。适配器模式就提供...

    Head First 设计模式 (七) 适配器模式(Adapter pattern) C++实现

    适配器模式(Adapter pattern)是软件设计模式中的一种,其主要目的是解决系统间接口不兼容的问题,使得原本无法直接协作的类或者组件能够协同工作。在“Head First 设计模式”这本书中,适配器模式被深入浅出地讲解...

    适配器模式(Adapter Pattern)原理图

    适配器模式是一种结构型设计模式,它允许接口不兼容的两个类可以协同工作。以下是该模式的要点: 1. **角色**: - **Target(目标接口)**:客户端期望调用的接口。 - **Adaptee(适配者)**:现有的、接口与目标...

    设计模式之适配器Adapter

    标题“设计模式之适配器Adapter”暗示我们将深入探讨适配器模式的核心概念和应用场景。适配器模式通常应用于以下场景: 1. 当系统中存在一个已经存在的类,其接口不符合新需求时,可以使用适配器模式来调整接口,使...

    PHP设计模式(五)适配器模式Adapter实例详解【结构型】

    适配器模式(Adapter Pattern)是一种结构型设计模式,它主要解决的是接口不兼容的问题,使得原本由于接口差异无法一起工作的类能够协同工作。在PHP中,适配器模式通过创建一个包装类(适配器类)来转换不兼容的接口...

    设计模式:可复用面向对象软件的基础--详细书签版

     “[设计模式]在实用环境下特别有用,因为它分类描述了一组设计良好,表达清楚的面向对象软件设计模式。整个设计模式领域还很新,本书的四位作者也许已占据了这个领域造诣最深的专家中的半数,因而他们定义模式的方法...

    通过C++实现适配器模式(Adapter Pattern).rar

    适配器模式(Adapter Pattern)是一种结构型设计模式,它允许接口不兼容的类一起工作。在C++中,适配器模式通常通过创建一个适配器类来实现,该类将不兼容的接口转换为兼容的接口。 压缩包文件代码是一个简单的C++...

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

    **定义**:适配器模式(Adapter Pattern)是一种结构型设计模式,允许不兼容的接口协同工作。该模式涉及到一个包含现有类的接口转换到客户端希望使用的另一个接口的对象。适配器模式使得原本由于接口不兼容而不能一起...

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

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

    C++设计模式课件16_Adapter_适配器.pdf

    ### 设计模式——适配器模式(Adapter Pattern) 在软件工程领域中,设计模式是一种用于解决常见问题的标准化方法。这些模式提供了一种系统化的解决方案,帮助开发人员编写出更易于理解、维护和扩展的代码。适配器...

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

    适配器模式(Adapter Pattern)是软件设计模式中的一种,其主要目的是解决接口不兼容问题,使得原本因为接口差异无法协同工作的类能够协同工作。在Java中,适配器模式通常分为类的适配器模式和对象的适配器模式。 ...

    Python设计模式之适配器模式原理与用法详解

    本文实例讲述了Python设计模式之适配器模式原理与用法。分享给大家供大家参考,具体如下: 适配器模式(Adapter Pattern):将一个类的接口转换成为客户希望的另外一个接口. 下面是一个适配器模式的demo: #!/usr/bin/...

    C++设计模式(Design Pattern)范例源代码

    23种设计模式(Design Pattern)的C++实现范例,包括下面列出的各种模式,代码包含较详细注释。另外附上“设计模式迷你手册.chm” 供参考。 注:项目在 VS2008 下使用。 创建型: 抽象工厂模式(Abstract Factory) ...

Global site tag (gtag.js) - Google Analytics