单体模式(Singleton)

王朝other·作者佚名  2006-02-01
窄屏简体版  字體: |||超大  

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航