关于单例设计模式的总结
2015-04-18 18:45
561 查看
1、什么是单例设计模式
单例设计模式就是解决一个类在内存中只有一个对象。
想要保证对象唯一:
(1)为了避免其他程序过多的建立该类对象,选控制其他程序建立该类对象
(2)为了让其他程序可以访问到该类对象,只好在本类中自定义一个对象
(3)为了方便其他程序对自定义对象访问,可以对外提供一些访问方式
2、单例设计模式的种类
种类一:饿汉式
种类二:懒汉式
种类三:懒汉式的升级版
单例设计模式就是解决一个类在内存中只有一个对象。
想要保证对象唯一:
(1)为了避免其他程序过多的建立该类对象,选控制其他程序建立该类对象
(2)为了让其他程序可以访问到该类对象,只好在本类中自定义一个对象
(3)为了方便其他程序对自定义对象访问,可以对外提供一些访问方式
2、单例设计模式的种类
种类一:饿汉式
/** * 单例设计模式--饿汉式 */ class SingleHungry { //将构造函数私有化 private SingleHungry(){}; //在类中创建一个本类的对象 private static SingleHungry s=new SingleHungry(); //提供一个方法可以获取到该对象 public static SingleHungry getInstance() { return s; } }
种类二:懒汉式
/** * 单例设计模式--懒汉式(对象的延迟加载) */ public class SingleLazy { //私有化对象s指向空 private static SingleLazy s=null; //将构造函数私有化 private SingleLazy(){}; //提供一个方法获取到该类的对象 public static SingleLazy getInstance(){ //如果对象是空,建立一个对象 if(s==null) s=new SingleLazy(); return s; } }
种类三:懒汉式的升级版
/** * 单例设计模式--懒汉式(对象的延迟加载)的升级版 */ public class SingleLazyImprove { //私有化对象s指向空 private static SingleLazyImprove s=null; //将构造函数私有化 private SingleLazyImprove(){}; //提供一个方法获取到该类的对象 public static SingleLazyImprove getInstance() { //用双层判断来加锁 if(s==null) { synchronized(SingleLazyImprove.class) { if(s==null) s=new SingleLazyImprove(); } } return s; } }
相关文章推荐
- 关于java中static关键字在单态设计模式的应用学习和总结
- 关于装饰设计模式的总结
- Android开发中关于设计模式的总结
- 关于js设计模式的一些总结和理解
- java中关于设计模式的总结
- 关于Gof设计模式的精辟总结
- 关于软件体系结构设计模式的总结
- 关于面试设计模式总结
- 关于设计模式的一点总结
- 项目总结(一)--- 关于用到的设计模式
- 关于行为类的设计模式之策略模式的总结
- 关于static静态的、继承、接口interface、final关键字、单例设计模式总结
- 关于java设计模式的总结博客
- 关于23种设计模式的有趣见解
- 关于设计模式的定义,什么是设计模式?
- 设计模式总结
- 设计模式总结一
- 设计模式总结之Visitor Pattern(访问者模式)
- JAVA设计模式(二十九)——设计模式总结
- 设计模式之简单工厂模式和策略模式总结