`
plkong
  • 浏览: 173175 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

设计模式-adapter

 
阅读更多

基本概念

 

   客户:需要调用我们的代码的对象。  

 Adapter模式的宗旨:保留现有类所提供的服务,向客户提供接口,以满足客户的期望,或者在系统开发初期暂时使用了第三方提供组件,保留自己的接口,待系统成熟后,开发自己的组件。

 

适配器一般有如下两种实现方式

 

(1)类适配器:当客户在接口中定义了他期望的行为时,我们就可以应用适配器模式,提供一个实现该接口的类,并且扩展已有的类,通过创建子类来实现适配。

 (2)对象适配器:对象适配器”通过组合除了满足“用户期待接口”还降低了代码间的不良耦合。在工作中推荐使用“对象适配”。

类适配器和对象适配器UML图

 

写个例子帮助理解下。

      一个电子商务网站,在开发初期为了减小投资成本,打算网站支付功能调用第三方组件,但考虑到在系统成熟后,公司可能会自主开发组件,所以需要考虑到今后的组件的替换,所以再支付功能使用了适配器模式。

 

支付功能抽象为接口:

public interface IPay {
	public boolean pay(int amount);
}
 

第三方支付组件:

public class ThirdPayTools {

	public boolean pay(int amount)
	{
		if(amount > 100)
		{
			System.out.println("支付成功!");
			return true;
		}
		else
		{
			System.out.println("金额不足!");
			return false;
		}
	}
}

 

对象适配器:

public class PayAdapter implements IPay {

	ThirdPayTools thirdPayTools = new ThirdPayTools();
	@Override
	public boolean pay(int amount) {
		return thirdPayTools.pay(amount);
	}
}

 类适配器:

public class PayAdapter extends ThirdPayTools implements IPay {

	public boolean pay(int amount) {
		return super.pay(amount);
	}
}
 

测试类:

 

public class Test {
	public static void main(String[] args) {
		IPay payAdapter = new PayAdapter();
		payAdapter.pay(20);
		payAdapter.pay(150);
	}
}

 

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

相关推荐

    C#设计模式-吕震宇

    C#设计模式(10)-Adapter Pattern C#设计模式(9)-Prototype Pattern C#设计模式(8)-Builder Pattern C#设计模式(7)-Singleton Pattern C#设计模式(6)-Abstract Factory Pattern C#设计模式(5)-...

    c++设计模式-结构型模式-适配器模式

    c++设计模式-结构型模式-适配器模式,其他工程,c++源码。适配器模式(Adapter)的定义如下:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。

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

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

    ②设计模式之Adapter模式

    ②设计模式之Adapter模式

    设计模式--C++

    1.1 什么是设计模式 2 1.2 Smalltalk MVC 中的设计模式 3 1.3 描述设计模式 4 1.4 设计模式的编目 5 1.5 组织编目 7 1.6 设计模式怎样解决设计问题 8 1.6.1 寻找合适的对象 8 1.6.2 决定对象的粒度 9 1.6.3 指定对象...

    设计模式1,FACADE模式,Adapter

    设计模式1,FACADE模式,Adapter facade Adapter singleton proxy

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

    适配器模式 设计模式 Adapter 还请各位大S指教

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

    生活中有很多Adapter的例子... Adapter模式应该是设计模式中一个轻量级的模式,实现起来也比较简单,有时候不经意中,你可能就已经实现了一个Adapter模式,只是自己没有发现而已。本文将通过一个范例介绍 Adapter模式。

    head first 设计模式-设计模式必读

    第1章到第11章陆续介绍的设计模式为Strategy、Observer、Decorator、Abstract Factory、Factory Method、Singleton,Command、Adapter、Facade、TemplateMethod、Iterator、Composite、State、Proxy。最后三章比较...

    论文研究-Adapter模式在嵌入式HMI组态软件图元设计中的应用 .pdf

    Adapter模式在嵌入式HMI组态软件图元设计中的应用,龚宇洁,,设计模式是面向对象设计的精髓。本文分析了Adapter模式的基本特征,在设计嵌入式人机界面组态软件的设计过程中,分析了组态软件图��

    ASP.NET设计模式-杨明军译(源码)

    《asp.net设计模式》涵盖了开发企业级asp.net应用程序的知名模式和最佳实践。本书用到的模式可以用于从asp.net1.0到asp.net 4.0的任何版本。不必管模式本身所用的语言,可以将模式用于任何面向对象编程语言。  ...

    36种最新设计模式整理

    36种最新设计模式整理 Design Pattern: Simple Factory 模式 Design Pattern: Abstract Factory 模式 Design Pattern: Builder 模式 Design Pattern: Factory Method 模式 Design Pattern: Prototype 模式 ...

    设计模式--可复用面向对象软件的基础

    1.2 Smalltalk MVC中的设计模式 1.3 描述设计模式 1.4 设计模式的编目 1.5 组织编目 1.6 设计模式怎样解决设计问题 1.7 怎样选择设计模式 1.8 怎样使用设计模式 第二章 实例研究:设计一个文档编辑器 2.1 设计问题...

    研磨设计模式-part2

    《研磨设计模式》完整覆盖GoF讲述的23个设计模式并加以细细研磨。初级内容从基本讲起,包括每个模式的定义、功能、思路、结构、基本实现、运行调用顺序、基本应用示例等,让读者能系统、完整、准确地掌握每个模式,...

    研磨设计模式-part4

    《研磨设计模式》完整覆盖GoF讲述的23个设计模式并加以细细研磨。初级内容从基本讲起,包括每个模式的定义、功能、思路、结构、基本实现、运行调用顺序、基本应用示例等,让读者能系统、完整、准确地掌握每个模式,...

    研磨设计模式-part3

    《研磨设计模式》完整覆盖GoF讲述的23个设计模式并加以细细研磨。初级内容从基本讲起,包括每个模式的定义、功能、思路、结构、基本实现、运行调用顺序、基本应用示例等,让读者能系统、完整、准确地掌握每个模式,...

    设计模式精解-GoF 23种设计模式解析

    设计模式精解-GoF 23 种设计模式解析附 C++实现源码 目 录 引 言 0.1 设计模式解析(总序) 0.2 设计模式解析后记 0.3 与作者联系 1 创建型模式 1.1 Factory模式 1.2 AbstactFactory模式 1.3 Singleton...

    设计模式精解-GoF 23 种设计模式解析附 C++实现源码.pdf

    设计模式精解- GoF 23 种设计模式解析附 C++实现源码 目 录 0 引言 ...........................................................................................................................................

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

    设计模式之适配器模式(Adapter Pattern) 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

    设计模式中的适配器设计模式

    java中的适配器模式,Adapter设计模式(包装器)23种设计模式之一

Global site tag (gtag.js) - Google Analytics