[译]Java 设计模式之组合】的更多相关文章

(文章翻译自Java Design Pattern: Composite) 组合模式相对来说是比较简单的,但是它在很多设计中被用到,比如SWT.Eclipse工作空间等等.它创建了一个可以通过唯一的方法访问的继承树. 类图 下面的代码实现了下面树的结构 Java 代码 import java.util.List; import java.util.ArrayList; //Component interface Component { public void show(); } //Compos…
组合模式 组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性.掌握组合模式的重点是要理解清楚 “部分/整体” 还有 ”单个对象“ 与 "组合对象" 的含义.组合模式可以让客户端像修改配置文件一样简单的完成本来需要流程控制语句来完成的功能.经典案例:系统目录结构,网站导航结构等.(百度百科) 组合模式UML图 组合模式代码 package com.roc.composite; /** * 公共对象声明 * @author l…
(文章翻译自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…