Читал статью про паттерн проектирование Singleton и наткнулся там на фразу "Предоставляет глобальную точку доступа к экземпляру данного класса". Объясните, пожалуйста, что она означает
Заранее спасибо
Александр Гуськов
22 уровень
Что значит формулировка "Предоставляет глобальную точку доступа к экземпляру данного класса"?
Обсуждается
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Justinian Judge в Mega City One Master
13 июля 2021, 20:12
Суть паттерна синглтон, что некий класс существует в количестве одного экземпляра.
Почему это нужно..
Допустим есть приложение которое обслуживает приют для животных:
Application CatShelter
там много логики, коты поступают в приют, их там кормят, дают ночлег и тд.
Но поскольку это приют, а не концентрационный лагерь, то котам при поступлении дают имена.
И этот класс пусть схематично выглядит так:
В чем смысл, смысл в том, что в этом классе у нас содержатся два списка - пул доступных кличек для котов Мурка, Мурчик и тд, а также список тех имен, которые уже дали.
Ну и там еще какая-то логика дачи имени.
у приложения может быть 1000 пользователей, и нам нужно, чтобы для всех был один экземпляр этого класса, а то будет раздавать одинаковые имена, или создавать 1000 списков.
Поэтому таким образом приложение одно, и один этот класс, который обеспечивает корректную работу.
и метод:
это и есть "глобальная точка доступа к экземпляру данного класса", ведь мы можем вызвать его с любого места нашего приложения. И получим ровно тот же самый экземпляр, сколько раз не вызывай.
Нюансы синглотна и мультипоточки дело десятое, здесь главное понять сам принцип, зачем это может понадобится. На более сложных проектах, когда будешь разбирать Джава ЕЕ технологии там увидишь, что такое бины, контекст приложения, коннекшен пул и тд, а здесь пока на котиках :) 0
Александр Гуськов
15 июля 2021, 10:27
Понял, спасибо большое!)
0
Александр Гуськов
13 июля 2021, 19:26
Если я правильно понимаю, тут имеется в виду, что данный метод(?) будет доступен в любой точке программы, так ли это?
0
Ksenia Volkova Java Developer в DXC Master
13 июля 2021, 19:32
Там же дальше поясняется - про публичный статический метод, который возвращает экземпляр класса
0