我正在开发一个wpf应用程序,并且我的主视图模型ctor看起来像这样。正如你所看到的,其他虚拟机通过ctor注入来注入。我需要这样做,因为需要所有视图模型来填充主菜单。Wpf主视图有很多其他视图模型依赖关系的模型
但这看起来并不正确。最初,由于应用程序很简单,我没有感觉到任何问题,但随着应用程序的不断增长,我认为ctor参数的数量正在增加,这是不对的。在我看来,单一责任原则是违反
public MultiControllerHomeViewModel
(
MultiControllerViewModel MCvm,
VigilantProcessListViewModel VPLvm,
MailSettingsViewModel MSvm,
DropboxSettingsViewModel DBSvm,
PushbulletSettingsViewModel PBSvm,
GeneralHelpViewModel GHvm,
LoginViewModel Lvm
)
{...}
有人可以请建议我如何处理这个?
对我来说,就像单一职责原则一样,如果您正在做的是正确的事情,如果您的MCHVM类的唯一责任是成为许多视图模型的聚合。但是如果它还有其他角色可以执行,那么你可能希望将该类分成更小的类,每个类只执行一个角色,并且无疑需要更少的子VM提供。 – LordWilmore