Java 设计模式之路《三》单例模式 博客分类: 设计模式
程序员文章站
2024-03-19 23:23:04
...
单例模式(Singleton)
单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这样的模式有几个好处:
1、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。
2、省去了new操作符,降低了系统内存的使用频率,减轻GC压力。
3、有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统完全乱了。
//方法一 public class Singleton { /* 私有构造方法,防止被实例化 */ private Singleton() { } /* 此处使用一个内部类来维护单例 */ private static class SingletonFactory { private static Singleton instance = new Singleton(); } /* 获取实例 */ public static Singleton getInstance() { return SingletonFactory.instance; } /* 如果该对象被用于序列化,可以保证对象在序列化前后保持一致 */ public Object readResolve() { return getInstance(); } }
//方法二 public class Singleton { //将自身的实例对象设置为一个属性,并加上Static和final修饰符 private static final Singleton instance = new Singleton(); //将构造方法设置成私有形式 private Singleton() { } //通过一个静态方法向外界提供这个类的实例 public static Singleton getInstance() { return instance; } }
//方法三 class Singleton { private static Singleton instance = null; public static Singleton getInstance() { if (instance == null) { Synchronized (instance) { if (instance == null) { instance = new Singleton(); } } } return instance2; } }
// 方法四 class Singleton { private static Singleton instance = null; public static synchronized Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } }
注:四种方法实现了一样的功能,推荐采用第一、二种方法,第三、四种方法效率低(三高于四)。
推荐阅读
-
Java 设计模式之路《三》单例模式 博客分类: 设计模式
-
设计模式总结1 博客分类: java java
-
浅谈企业应用架构(二) 博客分类: 架构乱弹 企业应用网络应用应用服务器设计模式框架
-
JavaScript中的prototype(原型)属性研究 博客分类: javascript prototypeJavaScript设计模式OOP脚本
-
基于业务模块组件的系统架构 博客分类: 架构乱弹 OSGI设计模式项目管理框架数据结构
-
浅谈企业应用架构(一) 博客分类: 架构乱弹 企业应用设计模式项目管理Oracle领域模型
-
域对象 & 面向对象 & 结构化编程 博客分类: Design 编程OO设计模式DAO数据结构
-
一期项目问题总结与对策 博客分类: 项目管理 Excel设计模式OO
-
OOP/AD basic 博客分类: Design OOPUIOOXP设计模式
-
供应商管理 博客分类: Management 项目管理QQ敏捷开发设计模式软件测试