现在的位置: 首页 > 综合 > 正文

单体模式(Singleton)

2012年11月17日 ⁄ 综合 ⁄ 共 1926字 ⁄ 字号 评论关闭

单体模式很简单,不需要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个以上主窗口的应用程序都是单体的(希望没有人对这句话钻牛角尖)。例如MSoutlook,无论你点击多少次outlook的图标,也只能有一个outlook主界面。

抱歉!评论已关闭.