MVVM ViewModels Singleton - PullRequest
       28

MVVM ViewModels Singleton

13 голосов
/ 15 февраля 2011

Является ли неправильной практикой делать все viewModels одиночными, если вам не нужно несколько экземпляров каждого экрана?

Ответы [ 3 ]

10 голосов
/ 15 февраля 2011

Да, потому что синглтоны - это зло .

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

5 голосов
/ 15 февраля 2011

одиночек:

  • сделать тестирование сложнее
  • даст вам пробелы позже, если вам понадобится больше одного из них
  • трудно контролировать, где они создаются

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

2 голосов
/ 15 февраля 2011

Да.

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

...