У меня практически нет практического опыта работы с PureMVC, поэтому я не могу спорить за или против их использования Singletons. Поэтому я постараюсь сделать свой ответ более общим.
Синглтон - это тип объекта, который может быть создан только один раз и доступен глобально.
Как правило, этот тип шаблона используется для того, чтобы иметь легкий доступ к службам какого-либо типа, возможно, к фасаду службы, используемому для извлечения данных с сервера, или к модели приложения, которая содержит информацию о настройках или тому подобное.
Синглтон-паттерн многими считается анти-паттерном по ряду причин, некоторые из которых упомянуты ниже:
- Они несут состояние, делая определенные задачи, такие как юнит-тестирование, практически невозможными.
- Они по своей сути нарушают принцип единой ответственности.
- Они способствуют тесной связи между классами из-за их глобальной доступности.
Я не буду перечислять все причины, по которым синглтон может быть анти-паттерном, существует множество ресурсов по теме .