你的位置:首页 > 软件开发 > ASP.net > 单例模式 (Singleton pattern)

单例模式 (Singleton pattern)

发布时间:2015-11-09 23:00:05
What is Singleton pattern?In Wikipedia, there is an explanation:"In software engineering, the singleton pattern is a design pattern tha ...

What is Singleton pattern?

In Wikipedia, there is an explanation:"In software engineering, the singleton pattern is a design pattern that restricts the instantiation of a class to one object."

 

一、什么是单例模式?

在维基百科中,是这样解释的,“在软件工程中,单例模式指的是对类加以限制,只允许创建一个对象的设计模式”。

也就是说,在整个应用程序的生命周期中,任何一个时刻,单例类的实例都只存在一个(当然也可以不存在)。

单例模式是一种对象创建型设计模式,在《设计模式:可复用get='_blank'>面向对象软件的基础》一书中提到,单例模式:“保证一个类仅有一个实例,并提供一个访问它的全局访问点”。

让类自身负责保存它的唯一实例,这个类可以保证没有其他实例被创建(通过截取创建新对象的请求)。

 

二、我们为什么要使用单例模式?

单例模式应该是设计模式中最简单的一种设计模式,它的应用场景如下:

在工作过程中,有些对象我们只需要一个,比如线程池、缓存、硬件设备等,

如果有多个实例同时使用,可能会造成执行冲突、结果不一致等问题。

比如我们创建了多个打印程序实例,或打印机对象,但实际的打印设备只有一台,或者打印假脱机只有一个,程序执行时,就可能会造成打印结果的混乱并使程序失去可再现性。

再比如,在一个父容器中点击某个菜单项打开一个子窗口,如果不加以控制的话,每次单击菜单项都会打开一个新窗口。这不仅会浪费内存资源,在程序逻辑上也是不可以接受的。

那么我们该如何解决这个问题呢?这就要用到下面所要详细介绍的单例模式。

 

三、经典单例模式

1.经典单例模式的UML图如下:

单例模式 (Singleton pattern)

 

2.代码实现如下:

原标题:单例模式 (Singleton pattern)

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录