JAVA标准库实现 package com.moshi.observer; import java.util.Date; import java.util.Observable; public class Product extends Observable { private Long id; private String name; private Date endDate; private Integer price; public Product(Long id, String name, Integer ...
http://www.blogjava.net/mlh123caoer/archive/2006/02/16/30900.html http://www.blogjava.net/flying/archive/2006/08/14/63550.html Flyweight在拳击比赛中指最轻量级,即"蝇量级",有些作者翻译为"羽量级"。这里使用"享元模式"更能反映模式的用意。 享元模式以共享的方式高效地支持大量的细粒度对象。享元对象能做到共享的关键是区分内蕴状态(Internal State)和外蕴状态(External ...
适配器模式 概述   这一章我们通过对适配器模式 (Adapter Pattern) 的讲解来继续我们对设计模式的学习。 Adapter 模式是一个经常使用的模式,正如你将会看到的那样,她常和其他模式一起 ...
http://www.blogjava.net/qixiangnj/archive/2007/01/13/93580.html http://www.blogjava.net/flying/archive/2006/08/13/63271.html 组合模式:将对象以树形结构组织起来,以达成“部分-整体” 的层次结构,使得客户端对单个对象和组合对象的使用具有一致性.     适用环境: u       你想表示对象的部分-整体层次结构。 u &nbs ...
http://www.blogjava.net/flying/archive/2006/08/14/63376.html http://www.blogjava.net/qixiangnj/archive/2007/01/31/97095.html 装饰模式:Decorator常被翻译成"装饰",我觉得翻译成"油漆工"更形象点,油漆工(decorator)是用来刷油漆的,那么被刷油漆的对象我们称decoratee.这两种实体在Decorator模式中是必须的. Decorator定义: 动态给一个对象添加一些额外的职责,就象在墙上刷油漆.使用 ...
http://www.javaeye.com/topic/85076 http://www.blogjava.net/mulinka/articles/8724.html http://www.blogjava.net/lostfire/articles/60086.html http://www.blogjava.net/crazycy/archive/2006/04/30/44169.html 用Java动态代理实现AOP from:http://www.cn-java.com/target/news.php?n ...
http://www.javaeye.com/topic/72152 老板说:“给我盖一座大楼。” 工程师说:“盖什么样的大楼呢?” 老板指着身后的一座楼说:“和那个一模一样的。” 从老板的角度来讲,他采用的就是,Prototype模式,即原型模式。否则,他需要再花费一些时间和工程师一点一点的探讨关于大楼的一些设计问题。 所谓的原型模式,就是用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 JAVA的Object.clone()的存在,使得这个模型的学习变得简单了许多 ...
http://www.javaeye.com/topic/71175 http://www.javaeye.com/topic/89225
1.    模式定义 工厂方法模式 (Factory Method) 是创建模式的一种,也叫虚拟构造子 (Virture Constractor) 模式或多态性工厂 (Polymorphic Factory) 模式。    &nbs ...
简单工厂模式 1. 目的          工厂模式就是专门负责将大量有共同接口的类实例化,而且不必事先知道每次是要实例化哪一个类的模式。它定义一个用于创建对象的接口,由子类决定实例化哪一个类。 2 . 简单工厂模式的结构    3. 一个简单例子 // 产品接口    public   interface  Product  ...
Visitor访问者模式定义 作用于某个对象群中各个对象的操作. 它可以使你在不改变这些对象本身的情况下,定义作用于这些对象的新操作. 在Java中,Visitor模式实际上是分离了collection结构中的元素和对这些元素进行操作的行为. 为何使用Visitor? Java的Collection(包括Vector和Hashtable)是我们最经常使用的技术,可是Collection好象是个黑色大染缸,本来有 各种鲜明类型特征的对象一旦放入后,再取出时,这些类型就消失了.那么我们势必要用If来判断,如: Iterator ite ...
java 代码 if(prj.getProjectId==null)       plan.setCost(0.0);   else       plan.setCost(prj.getCost());   我们在很多地方有类似的检查对象是否为null,如果为null,需要一个默认值等等这样的场景。显然,代码重复是坏味道,怎么消除这个坏味道呢?答案就是使用NullObje ...
我将通过对外观模式 (Facade Pattern) 的讲解来开始我们对设计模式的学习。也许在过去你就已经使用到了外观设计模式只是你并未曾注意到。 在这一章里将包含以下的一些内容: l          什么是外观设计模式 (Facade Pattern) 及其用途 ...
2007-08-21

SINGLETON模式

关键字: JAVA设计模式
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。 单例(SingLeton)故名思义就是在一个JVM运行中只有一个对象存在;请你务必注意到是在一个JVM虚拟机内。 在很多操作中,比如建立目录 数据库连接都需要这样的单线程操作。 还 有, singleton能够被状态化; 这样,多个单态类在一起就可以作为一个状态仓库一样向外提供服务,比如,你要论坛中的帖子计数器,每次浏览一次需要计数,单态类能否保持住这个计数,并且 能synchronize的安全自动加1,如果你要把这个数字永久保存到数据库,你可以在不修改单态接口的情况下方便的做到。 另外方面 ...