我应该使用静态实例属性来快捷方式 ServiceLocator 吗?

问题描述 投票:0回答:0

上下文:使用 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

c# wpf mvvm prism
© www.soinside.com 2019 - 2024. All rights reserved.