码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式_单例模式

时间:2018-11-14 12:38:34      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:类与对象   模式   全局   范围   单例   单线程   form   面向对象   一个人   

1.面向对象,变化隔离出来,压缩到最小
类与对象的交互。

模式分类:
1.从目的来讲:
1.创建型:负责创建对象
2.结构型:处理类与对象之间的组合
3.行为型:类与对象交互中的职责分配。
2.从范围来讲:
1.类模式: 处理类与子类的静态关系。在编译的时候,就确定下来。
2.对象模式:对象之间的动态关系,运行在内存之间。

3.设计模式
(1)单例模式
动机:Motivation .
保证在系统中,只有一个实例,才能保证逻辑正确性,以及良好的效率。

单例模式:应该由设计者负责,类本身负责,而不是使用者的责任。

绕过常规的构造器,提供一种机制来保证一个类只有一个实例。

比如:
private string configs;
public string Configs{
    get{
        if(configs==null){
            configs=ReadConfigFormFile();
        }
        return configs;
    }
}

目的:
这个,如果是程序只有一个人开发的,也可以保证,只有一个实例。但是,你怎么保证,别人开发的时候,不会去new这个东西,去创建这个东西?

应该是设计者的责任,而不是使用者的责任,不是告诉使用者,只能创建一次。

绕过常规构造器,提供一个机制来保证一个类只有一个实例。
意图(Intent):
    保证一个类只有一个实例,并提供一个该实例的全局访问点。

Singleton
    static instance()       return uniqueInstance
    SingletonOperation()
    GetSingletonData()
    -
    static uniqueinstance
    singletonData

使用静态的方式,来构造实例,把构造器的调用约束起来。

(1.1)单线程Singleton模式实现
    
    public class Singleton{
        private Singleton(){}
        private static Singleton instance;
        public static Singleton Instance{
            get{
                if(instance==null){
                    instance=new SingletonInstance();
                }
                return instance;
            }
        }
    }

设计模式_单例模式

标签:类与对象   模式   全局   范围   单例   单线程   form   面向对象   一个人   

原文地址:https://www.cnblogs.com/sujingnuli/p/9956942.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!