C# 设计模式学习二 Singleton单例模式
来源:互联网 发布:下载超牛数据恢复软件 编辑:程序博客网 时间:2024/06/06 19:28
一,模式分类
目的
1,创建型 Creational模式 负责对象创建
2,结构型 Structural模式 处理类与对象间的组合
3,行为型 Behavior 模式 类与对象交互中的职责分配
范围来看
1,类模式处理类与子类的静态关系
2,对象模式处理对象间的动态关系
二,Singleton模式
1,动机Motivation
在软件系统中 有一些特殊类,必须保证他们在系统中只有一个存在(只有一个实例)才能保证他们的逻辑正确性,以及良好的效率
这种动机是类的设计者的责任(由设计类的人保证),而不是使用者的责任
如何绕过常规的构造器,提供一种机制来保证一个类只有一个实例
2,意图
保证一类只有一个实例,并提供一全局访问点
三,Singleton模式的几个要点
1,Singleton模式中的实例构造器可以设置为protected以允许子类派生
2,Singleton模式不需要支持Icloneable接口(该接口用于克隆),会导致多个对象实例
3,一般不要支持序列化,同上(序列化的方式也可以创建对象)
4,只考虑了对象创建管理,没有考虑对象销毁的管理。因为开销较小(仅有一个),所以没有必要对其销毁进行特殊的管理。
5,不能应用多线程环境,在多线程环境中,使用Singleton模式任然有可能得到多个实例对象。
四,Singleton模式的扩展
1,将一个实例扩展到n个实例,例如对象池的实现
n并不是任意,而是可控制的范围,
如,建立一个服务队列,在初始化的过程中用new构造出n个对象,再轮询调用
2,将new构造器的调用转移到其他类中,例如多个类协同工作环境中,某个局部环境只需要拥有一个类的一个实例
3,理解和扩展Singleton模式的核心是:“如何控制用户使用new对一个类的实例构造器的任意调用”
即使很好的控制new,new太自由
五,实例
1,单线程Singleton模式
2,多线程Singleton模式
3,更好的Singleton模式的实现(多线程对应)
4,其他实例
- C# 设计模式学习二 Singleton单例模式
- C#设计模式--单例(Singleton)
- 设计模式学习笔记二(Singleton单件模式)
- C#设计模式-单例模式(Singleton Pattern )
- C#设计模式——单例模式(Singleton)
- C#设计模式之单例模式(Singleton Pattern)
- 设计模式之(二)--单例模式(singleton)
- 大话设计模式二十一:单例模式(Singleton)
- 设计模式介绍之二:单例模式(Singleton)
- 设计模式(二)——单例模式(Singleton)
- 设计模式介绍之二:单例模式(Singleton)
- 设计模式读书笔记(二) Singleton(单例)模式
- 设计模式介绍之二:单例模式(Singleton)
- 设计模式学习----Singleton单态模式
- C#面向对象设计模式纵横谈 学习笔记2 Singleton单例模式
- 设计模式学习与实践(二)----单例模式(singleton)
- 单例设计模式(Singleton)
- 单例设计模式Singleton
- C++继承
- 请大家支持
- 编写代码注意事项
- IIC学习笔记
- 日文电子邮件的格式礼仪
- C# 设计模式学习二 Singleton单例模式
- [动态规划]Pku1390 Blocks
- 批处理运行多个程序的方法/如何写批处理运行程序
- Mathtype输入Latex模式公
- ビジネス文書ー挨拶状
- 多重继承和虚基类
- 敬语和谦语
- 书信-例子
- 纪念第一次发技术铁 拉回来瞧瞧 关于int 9