上下文:使用 Prism 的 WPF MVVM 应用程序
我们有一个 ServiceLocator 负责返回我们的 ViewModel 类的单例实例。
例如:
var viewModel = ServiceLocator.Default.GetInstance<MyViewModel>();
为什么我不应该只简化对类似内容的访问:
class MyViewModel
{
public static MyViewModel Instance => ServiceLocator.Default.GetInstance<MyViewModel>();
}
所以这样,用法是:
var viewModel = MyViewModel.Instance;
优点/缺点是什么?
据我所知:
缺点:会增加对
ServiceLocator
到MyViewModel
的依赖。
优点:更简单的访问和可读性。该应用程序 already 无论如何都依赖于
ServiceLocator