Posted on 2009-06-01 21:25
Gavin.lee 阅读(207)
评论(0) 编辑 收藏 所属分类:
java design pattern
单态类概念:Singleton 是一种创建性模型,它用来确保在整个软件系统中,某个类只产生一个实例,并提供一个访问它的全局访问点.对一些类来说,保证只有一个实例是很重要的,比如有的时候,数据库连接或 Socket 连接要受到一定的限制,必须保持同一时间只能有一个连接的存在.再举个例子,集合中的 set 中不能包含重复的元素,添加到set里的对象必须是唯一的,如果重复的值添加到 set,它只接受一个实例.JDK中正式运用了Singleton模式来实现 set 的这一特性,大家可以查看java.util.Collections里的内部静态类SingletonSet的原代码.其实Singleton是最简单但也是应用最广泛的模式之一,在 JDK 中随处可见.
单态类的特性:
1、单态类只可有一个实例。
2、它必须自己创立自己这唯一的一个实例。
3、它必须给所有其它的类提供自己这一实例。
饿汉式:
public class EagerSingleton {
private static final EagerSingleton instance = new EagerSingleton();
private EagerSingleton() { }
public static EagerSingleton getInstance() {
return instance;
}
}
懒汉式:
public static LazySingleton getInstance(){
private static LazySingleton m_instance = null;
private LazySingleton(){}
public static synchronized LazySingleton getInstance() {
if(instance == null)
instance = new LazySingleton();
return m_instance;
}
}
其实学了一点java的初学者,写一个单态类,是绝对没问题的,但是想用好它,好像就没那么简单了,http://www.uml.org.cn/sjms/200903103.asp 这篇文章写的非常好。先到这里,以后等摆脱菜鸟的称号了再来仔细想想单态模式。期待中……