Java 枚举实现单例

来源:互联网 发布:mactype mac字体 编辑:程序博客网 时间:2024/05/01 18:22


众所周知的单例模式有懒汉和饿汉两种实现方式,懒汉模式存在线程安全的问题,同步,还有需要了解并规避java内存模型的“无序写”的问题,饿汉模式存在资源浪费的问题,当然可以使用内部类创建实例曲线救国,但不管懒汉模式还是饿汉模式,都存在序列化反序列化的问题,还有就是反射存在的情况下,私有的构造就会暴露出来,这时的封装就被破坏,无法限制对象的数量了。枚举实现的单例模式是目前来说最好的解决方案,能解决以上问题,并且代码非常简洁。以下就是枚举实现的一个简单的单例。

public enum Person {
singleton();
private int age;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
private Person() {
}

public static void main(String[] args) {
Person.singleton.setAge(12);
System.out.println(Person.singleton.getAge());
}


}



0 0
原创粉丝点击