使用枚举enum实现单例模式
2017-07-26 15:53
351 查看
单例模式的实现:
1, 普通模式:
public class SingleDemo {
private static SingleDemo instance;
private SingleDemo() {}
public SingleDemo getInstance() {
if (instance == null) {
instance = new SingleDemo();
}
return instance;
}
}
以上模式为懒汉模式
可以改造为饥饿模式,即Class加载即new对象
public class SingleDemo {
private static SingleDemo instance = new SingleDemo();
private SingleDemo() {}
public SingleDemo getInstance() {
return instance;
}
}
上述方法可以可以通过反射,突破单例模式。
可以使用 enum方式实现
public enum SingleDemoEnum {
INSTANCE;
public void method() {
// do work.
}
}
1, 普通模式:
public class SingleDemo {
private static SingleDemo instance;
private SingleDemo() {}
public SingleDemo getInstance() {
if (instance == null) {
instance = new SingleDemo();
}
return instance;
}
}
以上模式为懒汉模式
可以改造为饥饿模式,即Class加载即new对象
public class SingleDemo {
private static SingleDemo instance = new SingleDemo();
private SingleDemo() {}
public SingleDemo getInstance() {
return instance;
}
}
上述方法可以可以通过反射,突破单例模式。
可以使用 enum方式实现
public enum SingleDemoEnum {
INSTANCE;
public void method() {
// do work.
}
}
相关文章推荐
- 使用enum枚举数据类型实现多线程中的单例模式
- 单例模式之使用enum枚举数据类型实现
- Java枚举enum以及应用:枚举实现单例模式
- 设计模式之使用Enum来实现strategy(策略模式系列2)
- Java枚举使用以及枚举实现单例模式
- Java枚举enum以及应用:枚举实现单例模式
- java8——使用lambda和枚举实现简洁、可读性良好的策略模式
- 枚举的诸多使用方法enum--构造方法,普通方法method,获取枚举,实现接口
- 使用枚举实现单例模式
- 有趣的Java - 简单使用enum实现策略模式Strategy
- 使用Enum.TryParse()实现枚举的安全转换
- 使用枚举数据类型实现单例模式
- 使用枚举来实现单例模式
- Java枚举enum以及应用:枚举实现单例模式
- 使用观察者模式实现Java应用程序设计MVC模式
- 使用ASP.Net Forms模式实现WebService身份验证
- 使用特性(attributes)和激活机制来实现工厂模式【翻译】
- 装饰者模式---使用装饰者模式实现带日志记录功能的数据库命令执行类
- 使用Register/Notify模式在C#中实现非托管资源的统一处置
- 使用了继承、多态还有工厂模式和反射,但是还是没有OO的感觉。[已经增加了实现的代码]