использовать шаблон enum singleton:
public enum xxton {
INSTANCE;
}
Поскольку Шаблон Singleton подразумевает наличие частного конструктора и вызов некоторого метода для управления экземплярами (например, некоторые getInstance
) в Enumsу нас уже есть неявный закрытый конструктор.
Я точно не знаю, как JVM или какой-то контейнер контролирует экземпляры нашего Enums
, но, похоже,он уже использует неявный Singleton Pattern
, разница в том, что мы не называем getInstance
, мы просто называем Enum.В более общем смысле вы можете предоставить метод readResolve()
, например, так:
protected Object readResolve() {
return myInstance;
}