设计模式学习——适配器模式

介绍:

现实中适配器存在很多。就好像变压器,我想读这篇文章的你,很可能是一名学生(起码曾经是吧)。因为现在正好在宿舍写这篇blog。我所在的宿舍是会限电的,电压高了会跳闸,不能使用像电磁炉这样的设备,你懂的,大学里,偶尔宿舍成员在宿舍撮一顿,不能用些煮东西的设备,太没人性了有木有(吐槽下学校的制度),但是,网上有一些称为“变压器”的东西,可以帮你解决这个麻烦。变压器能够转变电压。比如把220v的变成110v;因为有了它,宿舍才能吃上顿大锅饭呐!

这里变压器的工作就像适配器模式做的工作一样,所以常常称适配器模式为变压器模式。再用head first上的例子,更形象些。

面向对象适配器:

假设已有一个软件系统,你希望它能和一个新的厂商类库搭配使用,但是这个新厂商所涉及出来的接口,不同于旧厂商的接口。

然后,我们不想改变现有的代码,也不能改变厂商的代码,所以该怎么样才能解决这个问题。可以再写一个类,将新厂商接口转变为你所期望的接口。

这个适配器如同一个中间人,它将现有的系统和厂商类连起来了。

时间: 2024-12-08 11:39:17

设计模式学习——适配器模式的相关文章

设计模式学习笔记系列

设计模式学习笔记(二十二)-FlyWeight享元模式 设计模式学习笔记(二十一)-Composite模式 设计模式学习笔记(二十)-Visitor访问者模式 设计模式学习笔记(十九)-Chain of Responsibility职责链模式 设计模式学习笔记(十八)-Mediator中介者模式 设计模式学习笔记(十七)-Memento备忘录模式 设计模式学习笔记(十六)-Proxy模式 设计模式学习笔记(十五)-State模式 设计模式学习笔记(十四)-Command模式 设计模式学习笔记(十

设计模式学习笔记(十)—Factory Method模式

<设计模式>一书对Factory Method模式是这样描述的: 定义一个用于创建对象的接口,让子类决定实例化哪一个类.FactoryMethod使一个类的实例化延迟到其子类. 我的理解:FatoryMethod模式是一种创建型模式,定义一个用于创建对象的接口的意思是说,我们要定义一个用于创建对象的接口(或者说抽象类,实际上就是个抽象工厂abstractFactory),它的内部有一个创建对象的方法,这个方法的返回值是一个接口(或者抽象类)的类型,这个方法就是FactoryMethod:让子类

PHP设计模式之适配器模式代码实例

  这篇文章主要介绍了PHP设计模式之适配器模式代码实例,本文讲解了目标.角色.应用场景.优势等内容,并给出代码实例,需要的朋友可以参考下 目标: 可将一个类的接口转换成客户希望的另外一个接口,使得原本不兼容的接口能够一起工作.通俗的理解就是将不同接口适配成统一的API接口. 角色: Target适配目标,该角色定义把其他类转换为何种接口,也就是我们的期望接口. Adaptee被适配者,就是需要被适配的接口. Adapter适配器,其他的两个角色都是已经存在的角色,而适配器角色是需要新建立的,它

JavaScript设计模式学习之“类式继承”

 这篇文章主要介绍了JavaScript设计模式学习之"类式继承",本文直接用代码实例讲解类式继承的实现方法,需要的朋友可以参考下     在做一件事情之前,首先要清楚做这件事情的好处有什么,相信不会有哪个人愿意无缘无故的去做事情.一般说来,我们在设计类的时候,实际上就是希望能减少重复性的代码,使用继承可以完美的做到这一点,借助继承机制,你可以在现有类的基础上再次进行设计并且充分利用它们已经具备的各种方法,而对设计的修改也更为轻松.废话不多说了,举例说明: 代码如下: function

C#设计模式(7)——适配器模式(Adapter Pattern)

原文:C#设计模式(7)--适配器模式(Adapter Pattern) 一.引言 在实际的开发过程中,由于应用环境的变化(例如使用语言的变化),我们需要的实现在新的环境中没有现存对象可以满足,但是其他环境却存在这样现存的对象.那么如果将"将现存的对象"在新的环境中进行调用呢?解决这个问题的办法就是我们本文要介绍的适配器模式--使得新环境中不需要去重复实现已经存在了的实现而很好地把现有对象(指原来环境中的现有对象)加入到新环境来使用. 二.适配器模式的详细介绍 2.1 定义  下面让我

请推荐哪些开源代码可以作为设计模式学习的素材

问题描述 请推荐哪些开源代码可以作为设计模式学习的素材,谢谢! 解决方案 struts: Chain of Responsibility(struts1.0), MVC, Spring: Factory, Singleton(配置), ProxyHibernate: Composite(Criteria), DAO(Database层)Swing: Adapter(Event 模式),Command(Menu),Decorator(JScrollPane)J2SE: Facade(InputSt

乐在其中设计模式(C#) - 适配器模式(Adapter Pattern)

原文:乐在其中设计模式(C#) - 适配器模式(Adapter Pattern)[索引页][源码下载] 乐在其中设计模式(C#) - 适配器模式(Adapter Pattern) 作者:webabcd 介绍 将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 示例 有一个Message实体类,某个类对它的操作有Insert()和Get()方法.现在需要把这个类转到另一个接口,分别对应Add()和Select()方法. Mess

优化-java设计模式学习问题?

问题描述 java设计模式学习问题? 我网站的基本功能都已实现,现在要对网站版本升级优化,想快速了解设计模式相关内容,求各位好人推荐视频教程,各种培训机构的都行~ 解决方案 java设计模式学习java-单例设计模式学习7.18_java学习_单例设计模式 解决方案二: 爱酷学习网去看看.里面是软件编程教训视频 解决方案三: 有一个故事版本的java设计模式的,百度一下就出来了 解决方案四: 百度一下,设计模式,会有很多视频和介绍的

【设计模式】—— 适配器模式Adapter

模式意图 如果已经有了一种类,而需要调用的接口却并不能通过这个类实现.因此,把这个现有的类,经过适配,转换成支持接口的类. 换句话说,就是把一种现有的接口编程另一种可用的接口. 模式结构 [类的适配器] Target 目标接口 Adaptee 现有的类 Adapter 中间转换的类,即实现了目标接口,又继承了现有的类. 1 package com.xingoo.test1; 2 interface Target{ 3 public void operation1(); 4 public void