Зачем использовать синглтон патерн? - PullRequest
0 голосов
/ 26 сентября 2010

Итак ... Я не могу понять, почему я должен даже использовать шаблон Singleton в ActionScript 3. Может кто-нибудь объяснить мне это?Может быть, я просто не понимаю цель этого.Я имею в виду, как это отличается от других моделей?Как это устроено?Я проверил источник PureMVC, и он полон синглетонов.Почему они используют их в представлении, модуле, контроллере?

Ответы [ 2 ]

3 голосов
/ 27 сентября 2010

У меня практически нет практического опыта работы с PureMVC, поэтому я не могу спорить за или против их использования Singletons. Поэтому я постараюсь сделать свой ответ более общим.

Синглтон - это тип объекта, который может быть создан только один раз и доступен глобально.

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

Синглтон-паттерн многими считается анти-паттерном по ряду причин, некоторые из которых упомянуты ниже:

  1. Они несут состояние, делая определенные задачи, такие как юнит-тестирование, практически невозможными.
  2. Они по своей сути нарушают принцип единой ответственности.
  3. Они способствуют тесной связи между классами из-за их глобальной доступности.

Я не буду перечислять все причины, по которым синглтон может быть анти-паттерном, существует множество ресурсов по теме .

1 голос
/ 27 сентября 2010

Шаблон singleton ограничивает создание экземпляра объекта только одним экземпляром. Иногда в системах используется этот шаблон, поэтому объект, управляющий частями системы, не может быть просто создан по желанию. Например, если у вас есть какой-то объект, который управляет настройками, вам нужно, чтобы что-то, что изменяет настройки, изменяло только один этот объект, а не создавало новый.

...