Автор оригинала: Federico Rossi.
Прежде чем начать: речь идет о дешевой реализации, вы можете использовать ее для любых целей, смысл сообщения в том, чтобы показать альтернативу, поддерживаемую языком.
Использование синглетов для написания любого приложения на объектно-ориентированном языке практически обязательно, если вам нужно контролировать доступ к определенному ресурсу через уникальный объект, например: подключение к базе данных.
Есть несколько инструментов/методов для достижения этой цели:
Использование аннотации @Singleton в Java EE 6: Ссылка на документ
Программирование собственной реализации одноэлементного шаблона: Примеры
Недорогая альтернатива: Используйте перечисление Как вы, вероятно, знаете (или нет), перечисление в Java представлено специальным перечислением типов данных. Этот тип данных позволяет задавать предопределенные константы, и эти константы являются объектами, созданными один раз. Так:
public class App { public static void main(String args[]) { Thing.INSTANCE.sayHi(); } public enum Thing { INSTANCE; public void sayHi(){ System.out.println("Hi from: " + this.getClass()); } } }
Результат таков:
Hi from: class App$Thing
Я надеюсь, что это поможет в случае, если вы ищете очень быстрый способ получить синглтон, вы должны знать, что есть несколько недостатков это очень далеко, чтобы быть блокировкой.
Оригинал: “https://www.codementor.io/@federicorossi/get-a-low-cost-java-singleton-ne8m8zl30”