在软件系统中,经常有这样一些类,必须保证它们在系统中只有一个实例,才能确保它们的逻辑正确性,以及良好的效率。如何绕过常规的构造器(如new),提供一种机制来保证一个类只有一个实例,这就需要使用单例模式类实现。
通常,我们在实例化一个类的时候,使用new关键字,如:
Person person = new Person;
这样我们是站在使用者的角度来创建一个类的实例,而对于单例模式,创建一个类的实例是类设计者的责任,而不是类使用者的责任。
单例模式在《设计模式》GoF中的定义是:保证一个类只有一个实例,并提供一个该实例的全局访问点。设计一个类为单例,其类图如下:
Java中单例模式的三种实现方式如下
方式一:饿汉式
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {
};
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
方式二:懒汉式
public class Singleton2 {
private static Singleton2 instance = null;
private Singleton2() {
};
static {
instance = new Singleton2();
}
public static Singleton2 getInstance() {
if (instance == null) {
instance = new Singleton2();
}
return instance;
}
}
方式三:
import java.util.HashMap;
import java.util.Map;
public class Singleton3 {
private static Map<String, Singleton3> map = new HashMap<String, Singleton3>();
static {
Singleton3 singleton = new Singleton3();
map.put(Singleton3.class.getName(), singleton);
}
protected Singleton3() {
}
public static synchronized Singleton3 getInstance(String name) {
if (name == null) {
name = Singleton3.class.getName();
System.out.println("name=null" + "--->name=" + name);
}
if (map.get(name) == null) {
try {
map.put(name, (Singleton3) Class.forName(name).newInstance());
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
return map.get(name);
}
}
- 大小: 17.5 KB
分享到:
相关推荐
总的来说,《设计模式核心笔录》是一份全面介绍和分析设计模式的重要参考资料,它将帮助开发者系统性地理解和掌握设计模式,提升软件开发的专业水平。通过实际案例和源码分析,使得理论知识与实践紧密结合,让开发者...
产品介绍(一) 规范的笔录模板 对笔录信息实时分析 提取关键要素 智能笔录系统全文共13页,当前为第4页。 产品介绍(二) 对接公安业务系统(情报、警综平台),进行实时比对。 智能笔录系统全文共13页,当前为第5...
标题中提到的“现场勘验检查笔录”是一种正式的法律文件,它详细记录了警方或调查人员在犯罪现场所进行的勘查和检查活动。在司法程序中,现场勘验检查笔录作为证据的一部分,对案件的调查和审理起着至关重要的作用。...
在使用Altium Designer等PCB设计软件时,泪滴设计是一个重要的技巧,它能改善信号质量,强化连接。过孔的设计也需要注意,避免直接放置在焊盘上,以免影响焊接效果。此外,对于RAM的布线,地线应与模拟地分开,以...
破产清算组询问笔录是一种企业非诉文书,用于记录破产清算组与相关人员或单位之间的询问过程。该文书类型中包含了询问的基本信息,如时间、地点、被询问人、询问人、询问主题、内容、询问总结、记录人、询问人签字和...
"强大的电子笔录办公软件"就是这样一款工具,它专门设计用于提升笔录工作的质量和速度,为用户提供了前所未有的便捷体验。这款软件集成了多种功能,旨在优化办公流程,减少手动输入的时间,提高数据的准确性,确保...
律师庭审笔录(民事) ...3. 研究分析:律师庭审笔录可以作为法律研究和分析的重要资料。 律师庭审笔录是一种重要的法律文件,它记录了律师在法庭上的审讯过程,对法律实践和司法系统具有重要意义。
《常见案件笔录制作指南》是一份由某市公安局法制处编写的文档,旨在指导公安人员规范制作各类案件的笔录,以确保执法过程的严谨性和合法性。笔录在刑事和行政案件的处理中起着至关重要的作用,它们既是查明案件事实...
#### 二、庭审笔录结构分析 - **律师事务所名称**:明确记录了所属律师事务所为“山东文鼎(城阳)律师事务所”,有助于区分不同的法律机构。 - **庭审基本信息**: - **时间**:2013年某月某日,具体日期需填写。 ...
尽职调查访谈笔录
标题中的“调查笔录模板(单位通用).rar”暗示了这是一个关于调查笔录的文档集合,通常用于组织或企业内部进行各类调查时记录信息。在教育领域,这样的模板可能被用作教学材料,帮助学生理解如何正确进行调查工作,...
一个精心设计的会议笔录PPT模板,能够帮助我们在工作中更高效地整理和呈现会议内容,从而提高团队协作效率。下面,我们将详细探讨如何充分利用“工作会议笔录PPT模板”,并结合实际操作,解析其在行政工作中的应用。...
笔录软件好用
安全生产事故调查询问笔录制作要求示范文本.pdf
厦门市公安局开发运用的公安笔录制作管理信息系统。
信访接待谈话笔录.pdf
律师调查笔录范例.doc
网上不好找这款软件。现把它共享出来,本人亲测可用,绿色安全,无毒无害,用着舒心,...它可能是您在BBS里一举成名的小文章,可能是让您名利双收的长篇小说,可能是让您商途昌盛的企业策划……这一切您都能一手掌握!
一、主界面 软件的主界面位于左侧导航条中,包含四个按钮:笔录功能、其它功能、设置管理和退出软件。每个按钮都对应着不同的功能模块。 二、笔录功能 笔录功能是软件的核心模块,包括询(讯)问笔录、笔录列表、...