---------------------- android培训、java培训、期待与您交流! ----------------------
设计模式:
1. 单例设计模式的作用:
解决一个类在内存只存在一个对象。
2. 单例设计模式的存在的原因:
为了避免其他程序过多建立该类对象,先禁止其他程序建立该类对象。
为了让其他程序可以访问到该类对象,只好在本类中,自定义一个对象。
为了方便其它程序对自定义对象的访问,可以对外提供一些访问方法。
3. 单例设计模式的实现方法:
具体代码实现:
将构造函数私有化
在类中创建一个本类对象。
提供一个方法可以获取到该对象。
3. 单例设计模式的实际应用:
- private DBConnection{}
- /**
- *数据库链接
- */
- private volatile static Connection conn=null;
- public static Connection getConnection(){
- if(conn==null){
- synchronized (PMSServerContext.class) {
- if(conn == null)
- conn = DBConnection.getImplementation().getConnection();
- }
- }
- }
- }
在getConnection()的方法中首先判断实例是否被创建,如果没有被创建,首先使用同步代码块 synchronized,在同步代码块里面我们还要再次判断实例是否被创建。这是因为如果第二次没有检查,线程同时进入方法体他们都检测conn为null,不管哪个线程先占据同步锁创建实例对象,都不会影响例外一个线程创建实例对象,所以我们在同步代码块中第二次判读该对象是否已经被创建。
第二属性conn是被volatile修饰的,因为它具有 synchronized的可见性特点,也就是说线程能够自动发现volatile的最新值。这样,如果conn实例化成功,其他线程便立即发现。
单例设计模式补充
单例的别一种实现方式,通过枚举实现, 前提:
该枚举中有且只有一个实例对象。
---------------------- android培训、java培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net/heima