您的位置:首页 > 其它

单例模式

2015-10-04 17:23 253 查看
单例模式的要点有三个:

一是某个类只能有一个实例;

二是它必须自行创建这个实例;

三是它必须自行向整个系统提供这个实例。

单件模式(Singleton):保证一个类仅有一个实例,并提供一个访问它的全局访问点。



图1单例模式(Singleton)结构图

单例模式(Singleton)是几个创建模式中最对立的一个,它的主要特点不是根据用户程序调用生成一个新的实例,而是控制某个类型的实例唯一性,通过上图我们知道它包含的角色只有一个,就是Singleton,它拥有一个私有构造函数,这确保用户无法通过new直接实例它。除此之外,该模式中包含一个静态私有成员变量instance与静态公有方法Instance()。Instance()方法负责检验并实例化自己,然后存储在静态成员变量中,以确保只有一个实例被创建。



图2单例模式(Singleton)逻辑模型

6种不同的单例模式(Singleton)的实现方式。这些实现方式都有以下的共同点:

有一个私有的无参构造函数,这可以防止其他类实例化它,而且单例类也不应该被继承,如果单例类允许继承那么每个子类都可以创建实例,这就违背了Singleton模式“唯一实例”的初衷。

单例类被定义为sealed,就像前面提到的该类不应该被继承,所以为了保险起见可以把该类定义成不允许派生,但没有要求一定要这样定义。

一个静态的变量用来保存单实例的引用。

一个公有的静态方法用来获取单实例的引用,如果实例为null即创建一个。
http://www.cnblogs.com/rush/archive/2011/10/30/2229565.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: