Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvOpSnSg 109 of 147 menu
◀ ▶

Единственный объект класса в Java

Singleton - класс, у которого в программе существует не больше одного объекта. Так оформляют общий журнал, настройки или счётчик, когда несколько независимых копий сломали бы логику.

Экземпляр хранят в private static поле, конструктор делают private, а снаружи отдают ссылку через статический метод getInstance():

class PostRegistry { private static final PostRegistry INSTANCE = new PostRegistry(); private int total = 0; private PostRegistry() { } static PostRegistry getInstance() { return INSTANCE; } void register(String title) { total++; } int count() { return total; } }

Возьмем единственный экземпляр реестра и проверим равенство ссылок:

PostRegistry a = PostRegistry.getInstance(); PostRegistry b = PostRegistry.getInstance(); a.register("News"); System.out.println(b.count()); System.out.println(a == b);

Сравнение a == b даёт true: обе переменные указывают на один и тот же объект. Состояние, изменённое через a, видно через b.

Сделайте singleton EmployeeDirectory с методом add(String name) и size(). Добавьте два имени через разные ссылки на getInstance() и выведите size().

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить