用私有化构造器或者枚举类型强化Singleton属性

Posted 点墨小僧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用私有化构造器或者枚举类型强化Singleton属性相关的知识,希望对你有一定的参考价值。

public class Elvis {

//第一种静态成员是一个final域
public static final Elvis INSTANCE = new Elvis();

//第二种公有成员是一个静态工厂方法
private static final Elvis INSTANCE2 = new Elvis();

public static Elvis getInstance() { return INSTANCE2; }

public static void main(String[] args) {
// TODO Auto-generated method stub

}

}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////

public enum Elvis {
INSTANCE;

private Elvis(){
System.out.println("构造器");
}

public void print(int i) {
System.out.println("number: " + i);
}

public static void main(String[] args) {
// TODO Auto-generated method stub
Elvis e1 = Elvis.INSTANCE;
Elvis e2 = Elvis.INSTANCE;
Elvis e3 = Elvis.INSTANCE;

e1.print(1);
e2.print(2);
e3.print(3);

}

}

 

单元素的枚举类型已经成为实现Singleton的最佳方法

 

以上是关于用私有化构造器或者枚举类型强化Singleton属性的主要内容,如果未能解决你的问题,请参考以下文章

Java:Effective java学习笔记之 用私有构造器或者枚举类型强化SIngleton属性

用私有构造器或者枚举类型强化Singleton

第3项:用私有构造器或者枚举类型强化Singleton属性

第3条:用私有构造器或者枚举类型强化Singleleton属性

第3条:用私有构造器或者枚举类型强化Singleleton属性

Effective Java目录