自己最熟悉的设计模式估计就是单例模式了:
这种方式可以防止用反射调用私有构造方法来创建多个对象,却不能防止通过反序列化得到多个对象,EJ提倡使用enum实现单例:
因为一个enum常量(这里是INSTANCE)代表了一个enum的实例,enum类型只能有这些常量实例。标准保证enum常量(INSTANCE)不能被克隆,也不会因为反序列化产生不同的实例,想通过反射机制得到一个enum类型的实例也不行的。
自己最熟悉的设计模式估计就是单例模式了:
这种方式可以防止用反射调用私有构造方法来创建多个对象,却不能防止通过反序列化得到多个对象,EJ提倡使用enum实现单例:
因为一个enum常量(这里是INSTANCE)代表了一个enum的实例,enum类型只能有这些常量实例。标准保证enum常量(INSTANCE)不能被克隆,也不会因为反序列化产生不同的实例,想通过反射机制得到一个enum类型的实例也不行的。