【发布时间】:2011-02-15 16:01:02
【问题描述】:
如果您不需要每个屏幕的多个实例,那么将所有视图模型设为单例是错误的做法吗?
【问题讨论】:
标签: .net wpf design-patterns mvvm
如果您不需要每个屏幕的多个实例,那么将所有视图模型设为单例是错误的做法吗?
【问题讨论】:
标签: .net wpf design-patterns mvvm
是的,因为singletons are evil。
您可能会遇到虚拟机保持状态的问题,该状态可能与您的数据库不同步并导致过多的内存消耗。 由于状态被持久化,单元测试将变得更加困难。
【讨论】:
单身人士:
所以只有在你有非常好的理由时才使用单例模式——“因为你可以”不是一个好的理由。
【讨论】:
是的。
首先,您可能会将自己置于任何可扩展性的角落,这取决于单例实现。其次,参考到处都是静态单例的设计可能不会很干净。第三,单元测试要么很困难,要么无法复制实际的类使用,或者两者兼而有之。第四,单例是否为您解决了任何设计问题?如果您只是想节省资源,那我就忘了它。
【讨论】: