您的位置:首页 > 其它

单体模式(Singleton)

2005-08-28 14:12 393 查看
单体模式很简单,不需要UML描述/** * */package org.colimas.doxygen.qtools;
/** * PatternBox: "Singleton" implementation. * <ul> * <li>defines an Instance operation that lets clients access its unique instance. Instance is a class operation</li> * <li>may be responsible for creating its own unique instance.</li> * </ul>
*
* @author tyrone */public class Singleton {
/** unique instance */ private static Singleton sInstance = null;
/** * Private constuctor */ private Singleton() { super(); }
/** * Get the unique instance of this class. */ public static synchronized Singleton getUniqueInstance() {
if (sInstance == null) {
sInstance = new Singleton();
}

return sInstance;
}
/** * This is just a dummy method that can be called by the client. Replace * this method by another one which you really need. */ public void doSomething() { }
}
/** * */package org.colimas.doxygen.qtools;
/** * PatternBox: "Client" implementation. * <ul> * <li>requests the Singleton to get its unique instance.</li> * </ul>
*
* @author tyrone */public class Client {
/** * Default constructor */ public Client() { super(); }
/** * This is just an example how to use the Singleton pattern. This operation * must be customized based on your application needs. */ public void useSingleton() { // TODO: Customize this method based on your application needs. Singleton singleton = Singleton.getUniqueInstance(); // call a Singleton method singleton.doSomething(); }
}实际应用,有很多程序都是单体模式的。那些不能同时打开2个以上主窗口的应用程序都是单体的(希望没有人对这句话钻牛角尖)。例如MS的outlook,无论你点击多少次outlook的图标,也只能有一个outlook主界面。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: