我正在開發一個wpf應用程序,並且我的主視圖模型ctor看起來像這樣。正如你所看到的,其他虛擬機通過ctor注入來注入。我需要這樣做,因爲需要所有視圖模型來填充主菜單。Wpf主視圖有很多其他視圖模型依賴關係的模型
但這看起來並不正確。最初,由於應用程序很簡單,我沒有感覺到任何問題,但隨着應用程序的不斷增長,我認爲ctor參數的數量正在增加,這是不對的。在我看來,單一責任原則是違反
public MultiControllerHomeViewModel
(
MultiControllerViewModel MCvm,
VigilantProcessListViewModel VPLvm,
MailSettingsViewModel MSvm,
DropboxSettingsViewModel DBSvm,
PushbulletSettingsViewModel PBSvm,
GeneralHelpViewModel GHvm,
LoginViewModel Lvm
)
{...}
有人可以請建議我如何處理這個?
對我來說,就像單一職責原則一樣,如果您正在做的是正確的事情,如果您的MCHVM類的唯一責任是成爲許多視圖模型的聚合。但是如果它還有其他角色可以執行,那麼你可能希望將該類分成更小的類,每個類只執行一個角色,並且無疑需要更少的子VM提供。 – LordWilmore