单体模式(Singleton)

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值