命令模式(Command):将“请求”(命令/口令)封装成一个对象,以便使用不同的请求、队列或者日志来参数化其对象。命令模式也支持撤销操作。命令模式的目的就是达到命令的发出者和执行者之间解耦,实现请求和执行分开。
从上面的示例可以看到:命令模式将“动作的请求者”从“动作的执行者”对象中解耦出来,这就是将方法的调用封装起来的好处。...
分类:
编程语言 时间:
2014-10-05 19:08:58
阅读次数:
178
单例模式保证了一个类只有一个实例,且提供一个访问全局点的方式,更加灵活的保证了实例的创建和访问约束。系统中只有一个实例,因此构造方法应该为私有 饿汉式:类加载时直接创建静态实例;懒汉式:第一次需要时才创建一个实例,那么getInstance方法要加同步synchronized 饿汉式比懒汉式要好,尽管资源利用率要差,但是不用同步synchronized。...
分类:
编程语言 时间:
2014-10-05 03:15:27
阅读次数:
264
抽象工厂模式(Abstract Factory):抽象工厂--顾名思义,就是把工厂抽象出来,不同的工厂生产不同的产品。这样做有个好处:一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。...
分类:
编程语言 时间:
2014-10-05 02:37:07
阅读次数:
213
转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/39760895
工厂方法模式(Factory Method)分为三种:
一、普通工厂模式。就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。
1、uml建模图:...
分类:
编程语言 时间:
2014-10-05 01:18:07
阅读次数:
431
装饰者(Decorator)模式:动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更具有弹性的替代方案。对于装饰者模式,它其实是一种包装,所以我更愿意称它为一种包装。像咱们以前经常使用的Java里面的IO流就用到了装饰着模式。比如:BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file1)));这里file1为目标对象,而像BufferedReader、InputStreamRead...
分类:
编程语言 时间:
2014-10-04 01:18:45
阅读次数:
400
观察者(Observer)模式定义:在对象之间定义了一对多的依赖关系,这样一来,当一个对象改变状态时,依赖它的对象都会收到通知并自动跟新。Java已经提供了对观察者Observer模式的默认实现, Java对观察者模式的支持主要体现在Observable类和Observer接口。先看uml模型图:...
分类:
编程语言 时间:
2014-10-03 21:27:25
阅读次数:
209
package Observer;
public class Test {
/**
* 客户端测试类
* 观察者模式一般由四部分组成:
* 1抽象的被观察者(一般教材上都叫做“Subject(抽象的主题类)”),
* 里面一般定义了抽象的add(),remove(),notifyAll()等方法,
* 分别用于增加观察者,删除观察者,通知观察者自己的变化。
* 2具体...
分类:
编程语言 时间:
2014-10-02 19:29:03
阅读次数:
247
今天开始咱们来谈谈Java设计模式。这里会结合uml图形来讲解,有对uml建模不熟的可以参考我的另一篇博文uml建模。
首先,个人觉得模式的设计就是一个将变化的东西和不变(稳定)的东西分离的过程。咱们的应用中可能有很多需要改变的地方,而模式要做的就是把它们“抽取”出来并进行“封装”和“实现”,因此更多的时候咱们是面向接口编程。下面将结合《Head First 设计模式》这一书中的某些具体案例以及本人的理解进行讲解。如果大家透过看图能说出是哪种模式并能进行具体的代码实现及加以应用,反之也能做到,那么我想关于J...
分类:
编程语言 时间:
2014-10-02 00:37:32
阅读次数:
297
/**
?*?@Title:?Aggregate.java
?*?@Package?com.wangbiao.design
?*?@Description:?TODO?
?*?@author?wangbiao???
?*?@date?2014-9-20?下午05:02:00?
?*?@version?V1.0
?*/
package?c...
分类:
编程语言 时间:
2014-09-28 17:16:14
阅读次数:
198
相对于适配器模式,或者说装饰器模式,代理模式理解起来更加简单。
代理这个词应该比较好理解,代替去做就是代理。
比如,我们买卖房子,那么我们会找中介,我要卖房子,但是我们没有时间去卖,我主动交给中介,中介会帮我发布,会帮我找买家,带买家看房,最后我只要收到钱就行了。
买家的目的:卖房拿钱。。卖加最终的目的就是把房子换成钱。...
分类:
编程语言 时间:
2014-09-28 16:33:43
阅读次数:
312