单例模式2
来源:互联网 发布:react native for mac 编辑:程序博客网 时间:2024/05/27 03:29
单例模式(Singleton)的6种实现
1.1.1 摘要
在我们日常的工作中经常需要在应用程序中保持一个唯一的实例,如:IO处理,数据库操作等,由于这些对象都要占用重要的系统资源,所以我们必须限制这些实例的创建或始终使用一个公用的实例,这就是我们今天要介绍的——单例模式(Singleton)。
使用频率 高
单件模式(Singleton):保证一个类仅有一个实例,并提供一个访问它的全局访问点。
1.1.2 正文
图1单例模式(Singleton)结构图
单例模式(Singleton)是几个创建模式中最对立的一个,它的主要特点不是根据用户程序调用生成一个新的实例,而是控制某个类型的实例唯一性,通过上图我们知道它包含的角色只有一个,就是Singleton,它拥有一个私有构造函数,这确保用户无法通过new直接实例它。除此之外,该模式中包含一个静态私有成员变量instance与静态公有方法Instance()。Instance()方法负责检验并实例化自己,然后存储在静态成员变量中,以确保只有一个实例被创建。
图2单例模式(Singleton)逻辑模型
接下来我们将介绍6中不同的单例模式(Singleton)的实现方式。这些实现方式都有以下的共同点:
- 有一个私有的无参构造函数,这可以防止其他类实例化它,而且单例类也不应该被继承,如果单例类允许继承那么每个子类都可以创建实例,这就违背了Singleton模式“唯一实例”的初衷。
- 单例类被定义为sealed,就像前面提到的该类不应该被继承,所以为了保险起见可以把该类定义成不允许派生,但没有要求一定要这样定义。
- 一个静态的变量用来保存单实例的引用。
- 一个公有的静态方法用来获取单实例的引用,如果实例为null即创建一个。
0 0
- 单例模式2
- 单例模式2
- 单例模式2
- 单例模式2
- 单例模式2
- 单例模式2
- 单例模式2
- 单例模式2
- 单例模式2-GCD实现单例模式
- 单例模式(2)
- iOS 单例模式2
- Java(2)--单例模式
- 2单例模式python
- 设计模式(2)-单例模式(Singleton)
- 设计模式(四)--单例模式(2)
- Java设计模式--单例模式2
- 设计模式(2)-单例模式(Singleton)
- 设计模式2:单例模式
- USACO2.4.4 Bessie Come Home (comehome)
- Prefix Notation
- dom4j解析xml文档(-)
- Quartz任务调度器及其在Spring中的使用
- ArrayList.add(index, element)失败,都是size的误解
- 单例模式2
- modem.generator不能继承的原因
- java中的各种数据类型在内存中存储的方式
- UITableView 上滑动 隐藏搜索框,下滑,显示搜索框
- Hduoj2512【DP】
- 为什么使用Resin服务器(Resin服务器的使用)
- Implementing iBooks page curling using a conical deformation algorithm
- USACO2.4.5 Fractions to Decimals (fracdec)
- [leetcode] 10 Regular Expression Matching