首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

设计形式学习笔记-单例模式

2012-08-26 
设计模式学习笔记-单例模式设计模式学习笔记-单例模式在网上学习了一段时间,总结了经典的2种单例模式的jav

设计模式学习笔记-单例模式

设计模式学习笔记-单例模式

在网上学习了一段时间,总结了经典的2种单例模式的java写法

写法1:

?

package org.star_java.designpattern;public class Singleton1{//volatile保证每次取instance都从主内存读取private volatile static Singleton1 instance = null;//保证无法new出这个类public Singleton1(){super();}public static Singleton1 getInstance(){if (instance != null)//DCL 双锁检测{synchronized (Singleton1.class)//线程安全{if (instance != null)//保证单例{instance = new Singleton1();}}}return instance;}}

?

写法2:

?

package org.star_java.designpattern;public class Singleton2{//保证无法new出这个类public Singleton2(){super();}//由JVM保重线程安全以及类的初始化和单例private static class SingletonHolder{static final Singleton2 Instance = new Singleton2();}public static Singleton2 getInstance(){return SingletonHolder.Instance;}}

注意事项:

1.单例模式一定要有一个private的构造器,防止new类

2.单例模式最好不要实现Cloneable,Serializable这样的接口,防止从这些途径生成类

3.单例模式要防止通过反射的setAccessible方法来突破private够着函数的限制,但是这些一般不需要自己处理,由应用服务器后台保证

热点排行