设计模式-创建型-单例模式

对于某些类,我们只需要一个实例,比如工具栏,如果能弹出多个窗体会给我们带来一些困扰。相同的窗体会造成对系统资源的浪费。如果相同的窗体内容不同就会给我们带来更大的困扰,比如word文档,我们如果能够将同一文档打开两次,又对其中内容做了更改,信息的不一致会让我们很头疼。
定义:单例模式(Singleton Pattern):确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。单例模式是一种对象创建型模式。
我们每次使用关键字实例化时都会产生一个新的对象,为了确保实例的唯一性我们需要禁止;类的外部直接使用New来创建对象,然后增加公有的静态方法。
单例模式的主要优点如下:
(1) 单例模式提供了对唯一实例的受控访问,所以它可以严格控制客户怎样以及何时访问它。
(2) 由于在系统内存中只存在一个对象,因此可以节约系统资源,对于一些需要频繁创建和销毁的对象单例模式无疑可以提高系统的性能。
(3) 允许可变数目的实例。基于单例模式我们可以进行扩展,使用与单例控制相似的方法来获得指定个数的对象实例,既节省系统资源,又解决了单例单例对象共享过多有损性能的问题。
单例模式的主要缺点如下:
(1) 不易扩展。
(2) 单例类的职责过重,将创建和产品都集合到了一起。
在以下情况下可以考虑使用单例模式:
(1) 系统只需要一个实例对象,如系统要求提供一个唯一的序列号生成器或资源管理器,或者需要考虑资源消耗太大而只允许创建一个对象。
(2) 客户调用类的单个实例只允许使用一个公共访问点,除了该公共访问点,不能通过其他途径访问该实例。

猜你喜欢

转载自blog.csdn.net/liuyubibn/article/details/81358897