Почему паттерн Борг лучше паттерна Синглтон в PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему паттерн Борг лучше паттерна Синглтон в Python

Сообщение Anonymous »

Почему паттерн Борг лучше паттерна Синглтон?
Я спрашиваю, потому что не вижу, чтобы они приводили к чему-то другому.
Борг:

Код: Выделить всё

class Borg:
__shared_state = {}
# init internal state variables here
__register = {}
def __init__(self):
self.__dict__ = self.__shared_state
if not self.__register:
self._init_default_register()
Синглтон:

Код: Выделить всё

class Singleton:
def __init__(self):
# init internal state variables here
self.__register = {}
self._init_default_register()

# singleton mechanics external to class, for example this in the module
Singleton = Singleton()
Здесь я хочу показать, что объект службы, реализованный как Borg или Singleton, имеет нетривиальное внутреннее состояние (он предоставляет некоторый сервис на его основе) (я имею в виду, что он должен будь чем-то полезным, это не синглтон/борг просто для развлечения).
И это состояние должно быть инициализировано. Здесь реализация Singleton более проста, поскольку мы рассматриваем init как настройку глобального состояния. Мне кажется неудобным, что объекту Борга приходится запрашивать свое внутреннее состояние, чтобы узнать, должен ли он обновиться.
Чем больше у вас внутреннего состояния, тем хуже. Например, если объект должен прослушивать сигнал удаления приложения, чтобы сохранить свой регистр на диск, эту регистрацию также следует выполнить только один раз, и это проще сделать с помощью синглтона.

Подробнее здесь: https://stackoverflow.com/questions/131 ... -in-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как лучше всего реализовать синглтон в Python? [закрыто]
    Anonymous » » в форуме Python
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Паттерн
    Anonymous » » в форуме JAVA
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Паттерн режима не работает с ответом Ajax
    Anonymous » » в форуме CSS
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Замена питона с помощью str.replace. Паттерн (WordHypenWord) Замена (WordSpacehypenspaceword)
    Anonymous » » в форуме Python
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Паттерн режима [a-za-z] не дает правильного результата [закрыто]
    Anonymous » » в форуме JAVA
    0 Ответы
    1 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»