Posts
xzoO.Org
Cancel

singleton模式可能是最简单最容易理解的一种设计了。就是在JVM运行时内,某个类永远只有一个实例存在。比如一个用来读写property属性文件的类,在整个应用中只需要一个单实例。 public class MySingleton { private static MySingleton instance = null; private MySingleton(){ ...

template method模式可以让我们顶一个类实现某个功能的的具体的流程,这个流程是规范的,不能被改变。每一个流程是一个方法,模板不定义方法体,方法体由不同的子类去做具体实施。 这就好比盖房这样的工程。盖房的流程是:挖地基、盖房、粉刷装饰。工程模板定义了这个流程的先后顺序,但是地基怎么挖,盖房怎么盖,由不同的房子(就是子类)的特点来决定。 加入盖房工程设计成一个类,我可以做成一个抽...

Java IO的SDK中用了大量的adaptor模式来解决不同格式不同方式的文件的读写。它能为客户掩盖掉底层实现的细节。在实际的开发中,它应用于这种情形: 现有的SDK/API只是一部分满足自己的需求 所以,不满足的部分只能通过适配的方法来弥补。 比如我有一个220V的电源插座,现在要为不同的设备生产不同的插头,比如手机和笔记本。220V是属于需要被改造适配的adaptee,5...

用观察者模式处理Java里的图形编程事件响应,非常好理解。多个观察者通过注册事件监听器,监听被观察者,一旦被观察者有状态改变,会发送通知给所有这些观察者去响应。举个最简单的例子,多个病人去看病,首先挂号,然后等叫号。病人就是观察者,医生就是被观察者。医生一旦发出叫号信息,所有病人会检查该叫号判断是不是自己要去看病。 我现在要设计一个用户响应的程序,需要处理鼠标的输入事件。鼠标有单击、双击、...

一般性地,用数组来保存同类型的对象,然后用for循环遍历这个数组就能取出所有的对象,这过程非常简单直接,很好用。 但是如果数组不适应了当前应用,开发人员决定用类似Vector或者ArrayList来保存这组对象,循环遍历就要重新改写。 迭代模式很好地解决了这个问题,循环遍历时,我不用担心对象组在内部是具体怎么保存的,到底是保存为数组还是保存为集合,完全不用操心。我只要知道统一的迭代方法就...