Как глобально хранить объект? У меня в коде есть несколько объектов, методы которых мне нужны практически во всех остальных частях программы. Но создавать все время заново эти объекты во всех функциях я не хочу; прописывать global тоже не нравится. В константах тоже не получается хранить, там только скаляр. Но, может, существует другое решение?
Конечно, можно обойтись вариантом вызова методов через :: (static), но мне бы хотелось найти более красивое решение.

21 Авг 2019 в 07:10
134 +1
0
Ответы
1

Один из способов решить эту проблему - использовать паттерн синглтон. Синглтон позволяет создать только один экземпляр объекта и предоставлять к нему доступ из любой части программы.

Пример реализации синглтона на языке Python:

class MyObject:
_instance = None
def __new__(cls):
if cls._instance is None:
cls._instance = super().__new__(cls)
cls._instance.some_attribute = "value"
return cls._instance
# Использование синглтона
my_object = MyObject()
# Теперь my_object доступен из любой части программы
print(my_object.some_attribute)

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

Если вы используете другой язык программирования, то также можно реализовать паттерн синглтон в нем, просто нужно найти соответствующий способ создания одного экземпляра объекта.

20 Апр в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 348 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир