[align=center][/align]
// 代码清单2:懒汉式单例类
public class LazySingleton {
static LazySingleton m_instance = null;
/**
* 私有的默认构造子,保证外界无法直接实例化
*/
private LazySingleton() {
}
/**
* 静态工厂方法,返还此类的惟一实例
*/
public static LazySingleton getInstance() {
if (m_instance == null) {
m_instance = new LazySingleton();
}
return m_instance;
}
}
[size=x-small][color=orange]//懒汉式单例首先是定义这个类的类变量(某个类的对象),(只是在内存中设定了足够的空间并没有具体分配某个类的方法或属性的空间)在if(类对象==null){new 这个类,具体分配空间给类对象的各个方法或者属性}
//再次调用这个方法时类对象已经不是null了,直接调用类对象的个个方法。这样在一个类里虽然很多方法都用到了类对象的方法,但是这个类方法只是new了一次(只分配一次空间所以比较省时!效率较高)!
//这种方法应该得到应用!应该作为一个工具类的。[/color][/size]
// 一 饿汉式单例类
public class EagerSingleton {
private static final EagerSingleton m_instance= new EagerSingleton();
/**
* 私有的默认构造子
*/
private EagerSingleton() {
}
/**
* 静态工厂方法
*/
public static EagerSingleton getInstance() {
return m_instance;
}
}
[align=left][color=brown][size=x-small]//饿汉式单例在一个类里直接new一个类的类对象,(已经把类对象具体分配了空间可以直接访问了!)用一个方法去获得类对象。类方法获得类对象![/size][/color][/align]
// 代码清单2:懒汉式单例类
public class LazySingleton {
static LazySingleton m_instance = null;
/**
* 私有的默认构造子,保证外界无法直接实例化
*/
private LazySingleton() {
}
/**
* 静态工厂方法,返还此类的惟一实例
*/
public static LazySingleton getInstance() {
if (m_instance == null) {
m_instance = new LazySingleton();
}
return m_instance;
}
}
[size=x-small][color=orange]//懒汉式单例首先是定义这个类的类变量(某个类的对象),(只是在内存中设定了足够的空间并没有具体分配某个类的方法或属性的空间)在if(类对象==null){new 这个类,具体分配空间给类对象的各个方法或者属性}
//再次调用这个方法时类对象已经不是null了,直接调用类对象的个个方法。这样在一个类里虽然很多方法都用到了类对象的方法,但是这个类方法只是new了一次(只分配一次空间所以比较省时!效率较高)!
//这种方法应该得到应用!应该作为一个工具类的。[/color][/size]
// 一 饿汉式单例类
public class EagerSingleton {
private static final EagerSingleton m_instance= new EagerSingleton();
/**
* 私有的默认构造子
*/
private EagerSingleton() {
}
/**
* 静态工厂方法
*/
public static EagerSingleton getInstance() {
return m_instance;
}
}
[align=left][color=brown][size=x-small]//饿汉式单例在一个类里直接new一个类的类对象,(已经把类对象具体分配了空间可以直接访问了!)用一个方法去获得类对象。类方法获得类对象![/size][/color][/align]