学会思考
刻意练习

单例模式 Singleton Pattern
意图:确保一个类只有一个实例,并对该实例提供全局访问接口
应用场景:
1)在多个客户端会话中共享同一个类的某个实例;
2)在某个类只有一个实例对象,或有限个实例对象

好处或缺点:
1)需要保证多线程对单例对象的访问同步
类结构:
类实例应该放在类内部完成,保证实例的唯一性和私有性;
注意:
创建实例方法是私有的;
类结构:
Singleton
static s:Singleton
Singleton()
CreateInstance():Singleton
static getInstance():Singleton

调用方法:
1.类方法的调用--类方法
2.实例方法


getInstance()实现:
if(s == NULL){
s = CreateInstance();
}
return s;

设计问题:Configuration类是COS系统的配置类,只能有一个实例对象,并共享于所有客户端,如何设计该类?
类结构:
Configuration
-$c:Configuration
-Configuration()
-$CreateInstance():Configuration
+$getInstance():Configuration

关键代码:

    public class Configuration
    {
        private static Configuration c;
        private Configuration() {}
        private static Configuration CreateInstance(){
        //创建对象
        }
        public static Configuration getInstance()
        {
            if (c == NULL)
            {
                c = CreateInstance();
            }
            return c;
        }
    }

 

posted on 2017-09-12 23:39  Worty  阅读(156)  评论(0编辑  收藏  举报