[译]Java 设计模式之适配器】的更多相关文章

(文章翻译自Java Design Pattern: Adapter) 适配器模式在现在的Java框架中被频繁的用到. 当你想去使用一个存在的类而且它的接口和你需要的不吻合,或者是你想去创建一个可复用的类但是这个需要和一个没有关系的类和不兼容的接口协作的时候,那么就可以用到适配器模式了. 1.适配器的来历 适配器是思想可以通过下面的简单例子来演示.下面例子的目的就是使一个橘子能够适配一个苹果. 在图的下部分,适配器有一个Orange实例,而且是继承自苹果的.它看起来一个橘子对象获取了一个适配器的…
今天是我学习到Java设计模式中的第三个设计模式了,但是天气又开始变得狂热起来,对于我这个凉爽惯了的青藏人来说,又是非常闹心的一件事儿,好了不管怎么样,目标还是目标(争取把23种Java设计模式接触一遍),我在北京向各位问好.老规矩,首先和各位谈谈适配器模式到底是个什么样的设计思想,而且在实际开发中又是如何应用的. 那些官方的概念我就不在这儿粘贴了,请各位自己想想办法.所谓适配器模式,按我意思说吧,其实它的目的就想达到新老兼容,使把原本不能放在一块工作的类或对象能够让它们同时使用起来,举个例子:…
(文章翻译自Java Design Pattern: Singleton) 单例是在Java最经常被用到的设计模式.它通过阻止其他的实例化和修改来用于控制创建对象的数目.这一特性可应用于那些当只有一个对象存在时能够更加有效的系统,或者是限制对象的实例化数目,比如: 1.私有化构造器(private constructor -)-没有其他的类可以实现化一个新的对象 2.私有化引用(private reference -)-没有其他的修改 3.公共的静态方法(public static method…
(文章翻译自Java Design Pattern: Bridge) 简单来说,桥梁设计模式是一个两层的抽象. 桥接模式就是从一个抽象中实现中解耦以便两个都可以独立的改变.桥接使用封装聚合而且使用继承将职责分配到不同的类中. ###1.桥接的来历 下面TV和远程控制的例子能够演示两层的抽象.你可以有一个针对TV的接口而且一有个对于远程控制的抽象类.你知道的,这不是一个好的做法去针对他们的每一个的具体类,因为其他的(vendors )供应商能够提供不同的实现. 2.桥接模式Java代码 首先定义T…
(文章翻译自Java Design Pattern: Decorator – Decorate your girlfriend) 1.装饰模式的来历 让我们假设你在寻找一个女朋友.有来自像没美国中国日本法国等等的不同国家的女孩.她们有不同的习惯和个性.在一个像eharmony.com的约会网站,如果每个类型的女孩都是一个独立的Java类,这样就会有成千上万个类.这样就会导致一个严重的叫做类爆炸的问题.还有就是这个设计不同扩展的.不管在任何时候只要有一个心的女孩类型,一个新的类就需要被创建. 让我…
(文章翻译自Java Design Pattern: Template Method) 模板方法设计模式定义了归档特定操作的工作流.它允许子类去修改特定的步奏而不用改变工作流的结构. 下面的例子表示模板方法模式是怎么工作的. 类图 Java 代码 Vehicle:java定义了一个小型车并且使其可以运作. package com.programcreek.designpatterns.templatemethod; abstract public class Vehicle { //set to…
(文章翻译自Java Design Pattern: Factory) 1.Java工厂模式的来历 工厂设计模式用于创建基于不同参数的对象.下面的例子就是在一个工厂里创建一个人.如果我们向工厂要一个boy,工厂就会生产一个boy;如果我们向工厂要一个girl,工厂就会生产一个girl.基于这些不同的参数,工厂就会生产不同的东西. 2.工厂模式类图 3.工厂模式Java代码 interface Human { public void Talk(); public void Walk(); } cl…
(文章翻译自Java Design Pattern: Facade) 外观设计模式隐藏了任务的复杂性而只是提供了一个简单的接口.一个非常好的例子就是计算机的启动.当一个计算机启动的时候,它涉及CUP.内存 .硬件驱动等等的工作.为了更容易让用户去使用,我们我提供了一个封装任务的复杂性的外观方式,提供了一个简单的接口用来替代. 1.外观模式类图 2.Java外观模式例子 //the components of a computer class CPU { public void processDa…
(文章翻译自Java Design Pattern: Command) 命令设计模式在进行执行和记录的时候需要一个操作及其参数和封装在一个对象里面.在下面的例子中,命令是一个操作,它的参数是一个Computer,而且他们被封装在一个Switch中. 从另外一个视角来看,命令模式有四个部分:command,recevier,invoker和client.在这个例子中,Switch是invoker,Computer是receiver.一个具体的Command需要一个receiver对象而且调用rec…
(文章翻译自Java Design Pattern: Mediator) 中介者设计模式被用于一组的同事进行协作.这些同事不彼此进行直接的交流联系,但是是通过中介者. 在下面的例子中,A同事想去说话,B同事先去打架.当他们做些事情时候他们调用了中介者的方法去做这些. 中介者模式类图 中介者Java代码 package designpatterns.mediator; interface IMediator { public void fight(); public void talk(); pu…
(文章翻译来自Java Design Pattern: Memento) memento是一个保存另外一个对象内部状态拷贝的对象.这样以后就可以将该对象恢复到原先保存的状态. 在将来时空旅行将成为显示.而备忘录将使时空旅行的关键.主要的讲,它是怎么使一个对象对到它以前的一个状态呢. 在下面的例子中,你可以你可以通过时空旅行回到你的任何一个年代,而且你可以恢复你以前去过的某一个年代. 备忘录设计模式类图 备忘录设计模式Java代码 package designpatterns.memento; i…
(文章翻译自Java Design Pattern: Prototype) 原型模式用于当当非常相似的对象频繁被需要的时候.原型模式克隆了对象并且设置变化的特征.这种方式会消耗更少的资源.考虑下为什么会消耗更少的资源? 1.原型模式类图 2.原型模式Java例子 package designpatterns.prototype; //prototype interface Prototype { void setSize(int x); void printSize(); } // a conc…
1.适配器模式( Adapter)定义将一个类的接口转换成客户希望的另外一个接口.Adapter 模式使得原来由于接口不兼容而不能一起工作的 那些类可以一起工作. 现实案例如下:  墙上电源类(220 伏)  笔记本类(客户,需要的电压<36 伏)  适配器类(将 220 伏墙上电源类转换为<36 伏的电压) 2.模式场合 当系统的数据和行为都正确,但接口不符时,此时可以考虑用适配器,目的是使控制范围之外的一个原有对 象与某个接口匹配.适配器模式主要应用于希望复用一些现存的类,但是接口又…
(文章翻译自Java Design Pattern: Abstract Factory) 抽象工厂模式针对工厂模式增加了抽象层.如果我们使用抽象工厂模式和工厂模式比较的话,很明显抽象工厂模式增加了一个新的抽象层.抽象工厂是一个创建了其他的工厂的超级工厂.我们可以称之为工厂的工厂. 抽象工厂类图 抽象工厂模式代码 interface CPU { void process(); } interface CPUFactory { CPU produceCPU(); } class AMDFactory…
(文章翻译自Java Design Pattern: Composite) 组合模式相对来说是比较简单的,但是它在很多设计中被用到,比如SWT.Eclipse工作空间等等.它创建了一个可以通过唯一的方法访问的继承树. 类图 下面的代码实现了下面树的结构 Java 代码 import java.util.List; import java.util.ArrayList; //Component interface Component { public void show(); } //Compos…
(文章翻译自java-design-pattern-iterator) 迭代器模式用于迭代遍历一个集合对象.它是一个经常被用到的模式,你可能以前使用过它.不管在任何时候你看见一些方法像hasNext()和Next(),这个很有可能就是一个迭代器模式.例如,你可以迭代去遍历一个数据库查询记录的列表. 迭代器模式类图 迭代器模式Java代码 interface IIterator{ public boolean hasNext(); public Object next(); } interface…
(文章翻译自Java Design Pattern: Interpreter) 解释器模式适用于当一些内容需要翻译的时候.下面的例子是一个非常简单的解释器实现.它将字母"a"和"b"翻译成"1"和"2". 类图: 注意:为了使结构更加清晰依赖关系也在图中显示出来了. Java 代码 class Context { private String input; private String output; public Conte…
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/9400141 今天一大早,你的leader就匆匆忙忙跑过来找到你:“快,快,紧急任务!最近ChinaJoy马上就要开始了,老板要求提供一种直观的方式,可以查看到我们新上线的游戏中每个服的在线人数.” 你看了看日期,不是吧!这哪里是马上要开始了,分明是已经开始了!这怎么可能来得及呢? “没关系的.”你的leader安慰你道:“功能其实很简单的,接口都已经提供好了,你只需要调用一下就行…
简介 简介是为了描述一下该模式是干嘛用的,为了让不了解该模式的人看了之后也有一些新的认识. 本文章分为两部分,第一部分主要介绍适配器模式:第二部分介绍该模式与相近模式的异同. 下午一直在讨论设计模式,米老师也对模式的讲解做了点指正,我们讲课重点放在了一些理论的层次,而且局限于书中,效果是对于理论往往是越深入讨论越迷糊,倒不如拿出经常用到的一些经典实例来讨论,因此,以后博客会把重点放在实际应用以及模式之间得区别与联系上. 生活中的“适配器” 不知道小时候你们是否看到过变压器,记得小时候每天放学后经…
设计模式在软件开发者中非常受欢迎的.每个设计模式都是对常见软件问题的通用的描述解决方案. 我们使用设计模式的好处有: 1.设计模式已经对于一个重复出现的问题进行了定义并且提供了工业标准的解决方案,因为如果我们合理的使用设计模式就可以节省很多时间. 2.使用设计模式提供的复用性可以产生更加稳健和高可控的代码.它可以帮助减少软件产品的总的花费. 3.因为设计模式已经被定义好了,所以它让我们的代码更加容易去理解和调试.它可以提供更加快速的开发并且使团队中的乘以更容易的理解. Java设计模式被分成了三…
摘要: 原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6508967.html 之前认真学习了Java设计模式中的四大接口型模式,分别为:适配器模式(Adapter).外观模式(Facade).合成模式(Composite).桥接模式(Bridge). 1.在此处再温习一下四种设计模式: (1)适配器模式: 我们能够访问的类中不存在我们要访问的内容时,就可以使用这个适配器模式,当然就类而言,其实不存在什么不能被访问,这里的不能访问都是人…
今天是我学习Java设计模式中的第三个设计模式了,但是天气又开始变得狂热起来,对于我这个凉爽惯了的青藏人来说,又是非常闹心的一件事儿,好了不管怎么样,目标还是目标(争取把23种Java设计模式接触一遍),我在北京向各位问好.老规矩,首先和各位谈谈适配器模式到底是个什么样的设计思想,而且在实际开发中又是如何应用的. 那些官方的概念我就不在这儿粘贴了,请各位自己想想办法.所谓适配器模式,按我意思说吧,其实它的目的就想达到新老兼容,使把原本不能放在一块工作的类或对象能够让它们同时使用起来,举个例子:比…
上一篇总结了设计模式的六大原则<JAVA设计模式总结之六大设计原则>,这一篇,正式进入到介绍23种设计模式的归纳总结. 一.什么是设计模式                                                                                                                                        设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.…
适配器模式定义:将两个不兼容的类纠合在一起使用,属于结构型模式,需要有Adaptee(被适配者)和Adaptor(适配器)两个身份. 为何使用适配器模式 我们经常碰到要将两个没有关系的类组合在一起使用,第一解决方案是:修改各自类的接口,但是如果我们没有源代码,或者,我们不愿意为了一个应用而修改各自的接口. 怎么办? 使用Adapter,在这两种接口之间创建一个混合接口(混血儿). 如何使用适配器模式 实现Adapter方式,其实"think in Java"的"类再生&quo…
Java 设计模式系列(六)适配器模式 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作. 适配器模式的结构: 类的适配器模式 对象的适配器模式 一.类适配器模式 类的适配器模式把适配的类的 API 转换成为目标类的 API. 在上图中可以看出,Adaptee 类并没有 sampleOperation2() 方法,而客户端则期待这个方法.为使客户端能够使用 Adaptee 类,提供一个中间环节,即类 Adapter,把 Adap…
本文地址:http://www.cnblogs.com/archimedes/p/java-adapter-pattern.html,转载请注明源地址. 适配器模式(别名:包装器) 将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作. 概述 适配器模式是将一个类的接口(被适配者)转换成客户希望的另外一个接口(目标)的成熟模式,该模式中涉及有目标.被适配者和适配器.适配器模式的关键是建立一个适配器,这个适配器实现了目标接口并包含有…
面试题-Java设计模式举例 1.适配器模式 涉及三个角色:Target目标接口.Adaptee源角色.Adapter适配器:Adapter将源接口适配到目标接口,继承源接口,实现目标接口. Java I/O操作中很多这样的例子: InputStreamReader 将 InputStream 适配到 Reader:需要继承InputStream实现Reader. OutputStreamWriter 将 OutputStream 适配到 Writer: StringReader 将 Strin…
转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/40031567 今天来对这23种设计模式做个总结.咱使用设计模式的目的是为了可重用代码.让代码更easy被他人理解.保证代码可靠性.当然设计模式并非万能的.项目中的实际问题还有详细分析. 咱不能为了使用设计模式而使用,而是在分析问题的过程中.想到使用某种设计模式能达到咱须要的效果,并且比不使用设计模式更有优势.那么咱该考虑使用设计模式了. 一.设计模式的一般分类 创建型(Creator)模…
    昨天做了一下支付宝的笔试题目被打击了,大量的逻辑推理和数学规律运算题目,其中还有问道Java设计模式的题目,一点都不知道,今天看到一份不错的介绍,非常好理解,作者是谁我没有办法考证,但是所有权是属于原作者的,我只是放在这里,便于自己理解查找,也便于大家查找,没有任何商业用途! 作者很有意思,写的很友善,全部是追女孩子的,把技术类的写的这么形象,不错,废话少说,直接上: 创建型模式 1.FACTORY-追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但…
Java 设计模式   设计模式是对大家实际工作中写的各种代码进行高层次抽象的总结 设计模式分为 23 种经典的模式,根据用途我们又可以分为三大类.分别是创建型模式.结构型模式和行为型模式 列举几种设计原则,这几种设计原则将贯通全文: 面向接口编程,而不是面向实现.这个尤为重要,也是优雅的.可扩展的代码的第一步,这就不需要多说了吧 职责单一原则.每个类都应该只有一个单一的功能,并且该功能应该由这个类完全封装起来 对修改关闭,对扩展开放.对修改关闭是说,我们辛辛苦苦加班写出来的代码,该实现的功能和…