适配器模式

原创 2016年08月29日 00:04:27

1.定义

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

2.角色

1.target:目标角色,客户所期待的接口

2.adaptee:源角色,现在需要适配的接口

3.adapter:适配器角色,通过包装一个需要适配的对象,将原接口转换成目标接口


3.实现方法

1.类适配器模式:采用继承方式

2.对象适配器模式:采用对象组合方式


4.类适配器模式(java不支持多继承)

5.对象适配器模式

//已存在的、具有特殊功能、但不符合我们既有的标准接口的类
public class Adaptee {
	public void specificRequest() {
		System.out.println("被适配类具有特殊功能");
	}
}
//目标接口,或称为标准接口
public interface Target {
	public void request();
}

//适配器类,直接关联被适配类,同时实现标准接口
public class Adapter implements Target {
	// 直接关联被适配类
	private Adaptee adaptee;
	// 可以通过构造函数传入具体需要适配的被适配类对象
	public Adapter(Adaptee adaptee) {
		this.adaptee = adaptee;
	}
	@Override
	public void request() {
		this.adaptee.specificRequest();
	}
}


//测试类
public class Client {
	public static void main(String[] args) {
		// 使用特殊功能类,即适配类
		// 需要先创建一个被适配类的对象作为参数
		Target adapter = new Adapter(new Adaptee());
		adapter.request();//被适配类具有特殊功能
	}
}


使用对象组合,以修改的接口包装被适配者。被适配者的任何子类,都可以搭配着适配器使用。

6.小结

1.适配器模式也是一种包装模式

2.适配器模式适合:系统需要使用现有的类,但此类已经不符合系统的需要

3.适配器模式将一个接口转换成另一个接口


7.区别

适配器将一个对象包装起来以改变其接口;

装饰者将一个对象包装起来以增加新的行为和责任;

外观将一群对象“包装”起来以简化其接口。


版权声明:本文为博主原创文章,未经博主允许不得转载。

设计模式(二) 三种适配器模式 总结和使用场景

转载请标明出处: http://blog.csdn.net/zxt0601/article/details/52703280本文出自:【张旭童的博客】一 概述定义:适配器模式将某个类的接口转换成客...
  • zxt0601
  • zxt0601
  • 2016年10月18日 16:34
  • 3013

一个示例让你明白适配器模式

本文讨论适配器模式。适配器模式是23中设计模式之一,它的主要作用是在新接口和老接口之间进行适配。它非常像我们出国旅行时带的电源转换器。为了举这个例子,我还特意去京东上搜了一下电源转换器,确实看到了很多...
  • brave2211
  • brave2211
  • 2014年01月26日 00:08
  • 42157

设计模式-缺省适配器模式

介绍大家所熟悉的是如果实现某一个接口,必须实现接口中的每一个方法。在适配器模式中,如果目标(Target)角色中的方法众多,需要的仅仅几个。但是根据接口的实现规则,其余的方法也必须实现,这必然造成了很...
  • IO_Field
  • IO_Field
  • 2016年10月11日 21:31
  • 1090

设计模式(工厂模式、适配器模式)

设计模式是面向对象程序编程的重要学习内容。设计模式的应用对于面向对象编程来说相当于经验,能够复用代码同时安全可靠。本文介绍工厂模式、策略模式和适配器模式。        工厂模式包括简单工厂模式,工厂...
  • yutianxin123
  • yutianxin123
  • 2016年09月06日 10:05
  • 788

适配器模式与Java应用

适配器模式与Java应用​ 在设计模式中或者说在很多编程场景下经常会使用到适配器,有心或无意。顾名思义,适配器就是将一个类的接口适配(包装/转换)成客户(调用者)希望的另一个接口。适配模式又可以细...
  • jackshiny
  • jackshiny
  • 2016年10月06日 13:07
  • 2339

23种设计模式(13):适配器模式

本文主要介绍设计模式中的适配器模式。
  • psp0001060
  • psp0001060
  • 2016年02月25日 16:21
  • 584

菜鸟版JAVA设计模式—适配器模式,装饰模式,代理模式异同

节前把3个设计模式的学习心得分享了一下,分别是适配器模式,装饰模式,代理模式。 但是似乎越写越有些迷糊,这三种模式都有着一些大同小异的地方,总是有些搞不清。 今天再重新学习下,把学习心得分享给大家一下...
  • lulei9876
  • lulei9876
  • 2014年10月14日 10:55
  • 12027

设计模式——适配器模式 Java源代码

适配器模式,《Head First Design Patterns》给的代码的例子是关于鸭子和火鸡,然而鸭子和火鸡离日常生活比较远。这次,我改编了实验楼网站上面的例子,关于插座和充电器。...
  • u013390476
  • u013390476
  • 2016年01月01日 16:02
  • 2327

解析SpringMVC源码中使用到的“适配器”模式

前言      关于SpringMVC初始化ContextLoader中的XMLWebApplicationContext,以及DispatcherServlet初始化等等,这样的原理 已经有N多的前...
  • w1033162186
  • w1033162186
  • 2016年02月04日 15:51
  • 974

Java设计模式菜鸟系列(八)适配器模式建模与实现

适配器模式(Adapter):将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。 主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。 1...
  • JAVE_LOVER
  • JAVE_LOVER
  • 2014年10月05日 19:52
  • 2348
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:适配器模式
举报原因:
原因补充:

(最多只允许输入30个字)