单例模式的两种写法及使用场合
两种方式 //饿汉式,一开始就加载 synchronized 线程同步 避免发生一下错误:当两个线程同时执行这个方法时,会new出两个对象,加了它就避免了。 */ 使用场合 类中没有可以修改的成员变量(这个类没有状态),如果存在可以修改的成员变量会产生线程安全问题,除非加上synchronized 关键字,不建议使用,单例模式无法继承,所以无法扩展,无法更改它的实现。如果读取配置文件比较适合使用单例。
|
两种方式 //饿汉式,一开始就加载 synchronized 线程同步 避免发生一下错误:当两个线程同时执行这个方法时,会new出两个对象,加了它就避免了。 */ 使用场合 类中没有可以修改的成员变量(这个类没有状态),如果存在可以修改的成员变量会产生线程安全问题,除非加上synchronized 关键字,不建议使用,单例模式无法继承,所以无法扩展,无法更改它的实现。如果读取配置文件比较适合使用单例。
|