单体模式(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主界面。
/** * 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主界面。
相关文章推荐
- 设计模式系列1:单体模式(Singleton)
- [No0000B3].NET C# 单体模式(Singleton)
- javascript 单例/单体模式(Singleton)
- .NET c# 单体模式(Singleton)[转载]
- 单例/单体模式(Singleton)
- .NET c# 单体模式(Singleton)
- javascript 设计模式之单体(Singleton)模式
- 单体模式singleton
- 单体模式Singleton
- javascript 单例/单体模式(Singleton)
- C++实现多线程安全的单体模式(Singleton)
- javascript的单例/单体模式(Singleton)
- 单例/单体模式(Singleton)
- 设计模式学习笔记(1)单体模式Singleton
- js设计模式-单体(Singleton)
- 单例/单体模式(Singleton)
- JavaScript 单例/单体模式(Singleton)
- C#.net Singleton 单体模式
- .NET c# 单体模式(Singleton)
- 单体模式 Singleton