翻译
文章平均质量分 74
leonhover
这个作者很懒,什么都没留下…
展开
-
设计模式:外观模式
设计模式:外观模式 外观设计模式(Facade design pattern)隐藏了任务内部错综复杂的处理而为我们提供了简单的功能接口。电脑的启动是一个很好的例子。电脑的启动包含CPU启动,内存启动,硬盘启动等等。为了能让用户简便使用,我们添加一个外观,仅仅提供一个简单的接口,来隐藏电脑内部繁琐或者负责的内部处理。 1、外观模式的类图 2、外观模式的例子 ...2013-12-12 15:34:50 · 145 阅读 · 0 评论 -
设计模式:观察者模式
简而言之,观察者模式就是发布者+订阅者。 观察者模式常常用在GUI的动作监听器上。 下面是一个典型的关于猎头的例子。在下图中有两个角色——猎头和求职者。求职者订阅了一个猎头,当猎头手里有新的工作机会的时候就通知求职者。 1、类图 2、实例代码 主体接口 public interface Subject { public void registerObserver(Observe...原创 2014-01-03 11:19:01 · 181 阅读 · 0 评论 -
设计模式:状态模式
状态模式主要是为了在运行的时候来回切换状态。 1、状态模式故事 人们生活在不同的财富状况下,他们有些富有,有些却贫穷。这两种状态——富有和贫穷,随着时间的推移可能会相互转化。人们在贫穷的时候通常都会努力工作,而富有的时候常常玩乐。他们干什么取决于他们生活在贫穷还是富有状态下。他们的行动作为又影响贫富状态的变化,要不然,人类社会就不公平了。 2、类图 下图就是它的类图,你可以比较下策略模...原创 2014-01-04 20:42:31 · 144 阅读 · 0 评论 -
设计模式:策略模式
永远不要轻言放弃 原文地址:http://www.programcreek.com/2011/01/a-java-example-of-strategy-design-pattern/***********************************************碎碎念的分割线************************************************* ...原创 2014-01-07 13:41:13 · 134 阅读 · 0 评论 -
Java中库vs框架
一个Java库和一个框架之间的区别是什么?这两种概念都非常重要但是有时候也令Java开发者感到困惑。 1、库和框架的主要不同点以及定义 库和框架之间主要的不同点是“控制反转”。当你调用一个库中的方法时,你在控制。但是用框架时,控制权反转了:框架在调用你的代码。 库仅仅是一个类定义的集合。背后的原因就是简单的代码复用,即得到那些其他开发者编写的代码。那些类和方法通常在一个域特定区域...原创 2014-01-09 13:59:42 · 254 阅读 · 0 评论 -
设计模式:模版方法模式
模板方法设计模式定义了达到特定操作的工作流程。它允许子类不改变工作流程的结构去修改某些步骤。 下面的例子展示了模板方法模式是怎样运作的。 1、类图 2、Java代码 Vehicle.java定义了一个vehicle和它怎么样运作。 package com.leon.templatemethod; public abstract class Vehicle { // 设置成...2014-01-10 13:34:37 · 141 阅读 · 0 评论 -
设计模式:访问者模式
访问者模式是在编译器的解析器常用的设计模式,例如,Eclipse JDT AST解析器。 基本上,在访问者模式中有两个接口——访问者和元素。 1、访问者的故事 假设有一个第一次来到纽约的游客。他想去游览这个城市而且这个城市也接收他游览。一旦游客开始游览,就会自动游览所有的事物,并且当他想去一个博物馆的时候他不必去调用任何方法。这个旅游是一个package! 2、访问者模式类图 3、访问...2014-01-13 13:12:00 · 158 阅读 · 0 评论 -
设计模式:责任链模式
责任链模式的主要思想是是建立一个链处理单元,每一个单元如果满足条件都会处理请求。由于是链构建,如果一个单元不满足条件,那么就测试下一个单元等。每一条请求都会沿着链处理。 1、类图 2、实例代码 package com.leon.chain; public abstract class Chain { public static int One = 1; public s...2014-01-14 11:36:38 · 117 阅读 · 0 评论 -
设计模式:命令模式
命令设计模式需要一个操作和附带的参数,并将它们封装在一个对象中来执行,记录等等。在下面的例子中,命令是一个操作,它的参数是一个Computer,而且它们封装在Switch。 从另一个角度看,命令模式有4个部分:命令,接收者,调用者和客户端。在这个例子中,Switch是调用者,Computer是接收者。一个具体的命令有哥接收器对象并调用接收器中的方法。调用者可以使用不同的具体的命令。客户端为接...2014-01-15 12:56:41 · 161 阅读 · 0 评论 -
设计模式:迭代器模式
迭代器是用于遍历一个对象的集合。它是一个比较常用的模式,你之前或许就用过。当你看到像hasNext()和next()的东西时,它或许就是一个迭代器模式。例如,你可能遍历一个数据查找记录的列表。 1、迭代器模式类图 2、迭代器模式Java代码 interface IIterator{ public boolean hasNext(); public Object next(); ...2014-01-16 09:56:09 · 158 阅读 · 0 评论 -
设计模式:享元模式
享元模式用来最大限度的减少内存使用。它所做的就是尽可能多的同其他类似对象共享数据。通常与工厂模式一起使用。 1、类图 2、JAVA代码实例 // 享元对象接口 interface ICoffee { public void serveCoffee(CoffeeContext context); } // 具体的享元对象 class Coffee implement...原创 2014-01-02 10:55:26 · 137 阅读 · 0 评论 -
设计模式:装饰器模式
装饰器模式可以动态地向一个已经存在的对象实例添加额外其他的功能。下面,用一个简单的小例子——打扮你的女友,来讲解装饰器模式。 1、装饰器小故事 假设你正在找一个妹子,这些妹子可能来自不同的国际,例如,America, China, Japan, France, 等等。她们也有不同的个性和习惯。在一个(像百合网)相亲的网站上,如果每一种类型的妹子都是各不相同的Java类的话,这可就有成千上万个...原创 2013-12-31 15:30:40 · 193 阅读 · 0 评论 -
设计模式:组合模式
组合模式(Composite)相对比较简单;但是在关于设计的地方很多都用到了这种模式。例如,SWT,Eclipse Workspace等等。组合模式一般用来生成一个可以通过同一方法来访问不同层级的树。 1、类图 下面的代码例子实现了如下树状数据结构。 2、代码实例 import java.util.List; import java.util.ArrayList; /...原创 2013-12-30 10:19:40 · 153 阅读 · 0 评论 -
设计模式:工厂模式
1、简述 工厂模式是通常用不同的参数来创建不同(属性不同等)对象实例的一种模式。下面的例子就是用工厂来创建人类Humen。如果你请求工厂创建一个男孩,工厂就给你一个男孩的实例,如果你请求工厂创建一个女孩,工厂就给你一个女孩实例。基于你传入的参数,工厂创建不同的实例。 2、工厂模式类图 3、实例代码 interface Human { public void Talk(); ...原创 2013-12-13 14:44:14 · 137 阅读 · 0 评论 -
设计模式:抽象工厂模式
1、简述 抽象工厂模式在工厂模式的基础上多添加了一层抽象,跟工厂模式比较一下,这个很容易看得出来。抽象工厂是一个工厂的父类,用来创建其他工厂。可以说是生产工厂的工厂。 2、抽象工厂类图 3、抽象工厂实例代码 interface CPU { void process(); } interface CPUFactory { CPU produceCPU(); }...原创 2013-12-13 14:58:14 · 137 阅读 · 0 评论 -
设计模式:建造者模式
建造者模式的主要特征是它包含一个逐步处理的步骤来创建东西,也就是说,虽然每一步的实现是不同的但是创建对象的过程都遵循相同的步骤。 1、建造者模式类图 2、代码实例 package designpatterns.builder; // 创建产品 class Starbucks { private String size; private String drink;...原创 2013-12-13 16:21:03 · 130 阅读 · 0 评论 -
设计模式:备忘录模式
未来,时间旅行真的可以实现。备忘录则是时间旅行的关键,因为它能够让一个物体还原到以前的状态。 在下面的例子中,你可以通过时间旅行到你人生的任何时间点,你也可以还原到你曾经到经历过的任何时间点。 1、备忘录模式类图 2、备忘录模式实例代码 package designpatterns.memento; import java.util.List; import java.util....原创 2013-12-16 10:53:06 · 167 阅读 · 0 评论 -
设计模式:解释器模式
解释器模式,用在有上下文需要被解释的时候。下面的例子是一个非常简单的解释器实现。怎么将字母'a'和'b'解释成'1'和‘2’。 1、类图 2、实例代码 class Context { private String input; private String output; public Context(String input) { ...原创 2013-12-17 11:01:11 · 135 阅读 · 0 评论 -
设计模式:单例模式
单例模式是Java编程中用到最多的一种设计模式。这种模式用于控制对象的数量并防止外部实例化和修改。这种理念可以推广到只存在一个对象时能更有效地运作的系统中,或者对对象实例化有要求的地方。例如: 1.私有化构造方法——没有类能够创建实例; 2.私有引用——不能修改; 3。公共静态方法——只能从此方法得到对象实例。 1、单例模式趣解 下面是一个简...原创 2013-12-18 15:12:21 · 149 阅读 · 0 评论 -
设计模式:原型模式
当你频繁需要创建同类或者相似的对象实例的时候可以使用原型设计模式。原型设计模式就是克隆一个对象实例,再设置可改变的特征,就得到了一个相似或者同类的对象实例。这样可以减少资源的消耗。思考下,为什么能减少资源消耗。 1、原型模式类图 2、代码实例 package com.leon.prototype; /** * 设计模式——原型模式,实例代码 * * @author ...原创 2013-12-25 21:50:07 · 118 阅读 · 0 评论 -
设计模式:适配器模式
适配器模式在现代流行的框架中经常用到。 当你想用一个已经存在的类,但这个类的接口与你要求的接口不一直;或者你想创建一个与没有兼容的接口或不相关类协作的可复用的类时候,适配器模式就能派上用场。 1、适配器的故事 我们用下面的例子来展示适配器模式,这个例子的目的是将Orange适配成Apple。 如上图所示,AppleAdapter包含一个Orange的实例,并且继承自Apple。这看起来...原创 2013-12-26 15:46:56 · 169 阅读 · 0 评论 -
设计模式:桥接模式
简单点说,桥接模式就是一种具有两个层次的抽象。 桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接模式采用封装、聚合以及继承将责任分配到不同的类中。 1、 桥接模式的故事 电视和电视遥控器的例子可以说明这个两层的抽象。你有TV的接口和Remote Control的抽象类。我们知道,由于不同的设备生产商会制作不同的电视遥控器和电视,所以写具体的TV和Remote Contr...原创 2013-12-27 17:08:48 · 200 阅读 · 0 评论 -
设计模式:中间人模式
中间人设计模式是用于协作一组同事。这些同事相互之间不直接沟通,而是通过中介。 在下面的例子中,同事A想要说话,同事B想要打架。当他们做动作(例如doSomething)的时候,他们调用中间人去做那些动作或事情。 1、中间人类图 2、代码实例 package com.leon.mediator; interface IMediator { public void fight()...2014-01-17 10:50:14 · 714 阅读 · 0 评论