我遇到了一个问题。我有一个带有方法执行的命令,从枚举类型参数必须创建一个 ViewModel 的实例(例如 HomeViewModel)。基本实现是设置一个 switch 语句,根据情况创建不同的 ViewModels。
为了更易于维护的代码和尊重 SOLID O/C 原则,我想使用工厂..
基本代码:
if(parameter is ViewType)
{
ViewType viewType = (ViewType)parameter;
switch(viewType)
{
case ViewType.Home:
_navigator.CurrentViewModel = new HomeViewModel();
break;
case ViewType.Portfolio:
_navigator.CurrentViewModel = new PortfolioViewModel();
break;
}
}
我想我可以使用一个通用的工厂类或使用一个参数来获取对象。从而取代 switch 语句。我做了一个这样的工厂:
public class ViewModelAbstractFactory : IViewModelAbstractFactory
{
public HomeViewModel GetHomeViewModel()
{
return new HomeViewModel();
}
public MainViewModel GetMainViewModel()
{
return new MainViewModel();
}
public PortfolioViewModel GetPortfolioViewModel()
{
return new PortfolioViewModel();
}
}
但我不清楚这是否是一个好主意和/或如何实施它。
有什么建议吗?
非常感谢您的帮助:)。