1.1概述
保证一个类仅有一个实例,并提供一个访问它的全局访问点。这就是单件模式的定义。
在某些情况下,我们可能需要某个类只能创建一个对象,即不让用户用该类实例化出多于两个的实例。
例如,在一个公文管理系统中,公文类的实例“公文文件”,需要将公章类的实例作为自己的一个成员,以表明自己是一个有效的公文文件,那么系统的设计者就需要保证公章类只有一个实例,不能允许用户使用公章类的构造方法再创建出第2个实例。
单件模式是关于怎样设计一个类,并使该类只有一个实例的成熟模式,该模式的关键是将类的构造方法设置为private权限,并提供一个返回它的唯一实例的类方法(static)。
1.2模式的结构
单件模式的结构非常简单,只有一种角色:
(1)单件类(Singleton):单件类只可以创建出一个实例。
单件模式结构类图如下所示:
单件类的设计有如下特点:
(1)单件类中包含有自身声明的类变量,这个类变量就是单件类唯一的实例。
(2)单件类的构造方法访问权限是private。为了确保单件类中自身声明的类变量是单件类唯一的实例,单件类必须将构造方法的访问权限设置为private。这样一来其他类都无法使用单件类创建的对象。
(3)单件类负责创建自己唯一的实例,并提供访问该实例的类方法。由于单件类的构造方法被设置为private,所以单件类必须自己负责创建自身声明的实例。为了让用户使用单件类这个唯一实例,单件类必须提供一个类方法,以便其他用户使用单件类的类名就可以调用这个类方法访问使用单件类这个唯一实例。
1.3单件模式的优点
(1)单件类的唯一实例由单件类本身控制,所以可以很好地控制用户何时访问它。
1.4适合使用单件模式的情景
(1)当系统需要某个类只能有一个实例
相关推荐
C# 基本语法、面向对象的思想、数据结构和算法以及设计模式(120课时) 详细介绍.Net Framework、C# 基本语法、编程规范和编程技巧、面向对象的认识问题和分析问题的思想、以及数据结构和常用算法,学习单件模式、...
C# 基本语法、面向对象的思想、数据结构和算法以及设计模式(120课时) 详细介绍.Net Framework、C# 基本语法、编程规范和编程技巧、面向对象的认识问题和分析问题的思想、以及数据结构和常用算法,学习单件模式、...
C# 基本语法、面向对象的思想、数据结构和算法以及设计模式(120课时) 详细介绍.Net Framework、C# 基本语法、编程规范和编程技巧、面向对象的认识问题和分析问题的思想、以及数据结构和常用算法,学习单件模式、...
在这种情况下,可以考虑使用结构体封装相关的全局变量,或者使用单件模式来限制全局变量的实例数量。 在本次项目笔记的分享中,还涉及了代码提交的重要性,即坚持将代码提交到版本控制库(如gitee),这有利于代码...
C# 基本语法、面向对象的思想、数据结构和算法以及设计模式(120课时) 详细介绍.Net Framework、C# 基本语法、编程规范和编程技巧、面向对象的认识问题和分析问题的思想、以及数据结构和常用算法,学习单件模式...
C# 基本语法、面向对象的思想、数据结构和算法以及设计模式(120课时) 详细介绍.Net Framework、C# 基本语法、编程规范和编程技巧、面向对象的认识问题和分析问题的思想、以及数据结构和常用算法,学习单件模式...
教学方法也由被动的听和记转变为在计算机教室中边观看教师的演示边进行实践学习的自主学习模式。 服装CAD技术还可以实现服装制作工艺的虚拟化。通过制作模拟动画,教师可以进行反复演示,而学生则可以边观看边实践...