单体模式很简单,不需要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主界面。