Подтвердить что ты не робот

MVVM ViewModels Singleton

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

4b9b3361

Ответ 1

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

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

Ответ 2

одиночек:

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

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

Ответ 3

Да.

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