专门为VM和服务放置逻辑的位置

时间:2019-09-26 09:53:24

标签: c# wpf mvvm mef

因此,我重构了很多代码,使其遵守MVVM体系结构。我正在使用MEF,而我正在使用Caliburn Micro,但我有一个难题/问题。

我的ObjViewModel具有一些属性,例如“ IsAddObjToggleChecked”等,并且有一些逻辑需要对此属性进行检查,即,如果该属性被选中,则需要执行一些业务逻辑。现在,我不想在当前的视图模型中使用此逻辑,因为该视图模型有800行并且具有“业务逻辑”-我有一个ObjService,它会将自身注入到我的视图模型中,并且包含一个可观察到的Obj集合,其中Obj是我的数据模型。

问题是,我可以在哪里放置此业务逻辑?由于业务逻辑正在与可观察的数据模型集合一起工作,因此将数据模型放在其中是没有意义的。我本来打算将其放在我的ObjService类中,但是如何在其中包含其中包含viewmodel属性的业务逻辑呢?将参数传递给服务?这样会不会产生紧密的耦合?

然后,我想到了仅使用像ObjHelper类这样的完全独立的单例类...来执行其所需的逻辑,但是如果我们传入这些辅助函数/业务逻辑中使用的属性,则视图模型将如何知道他们已经改变了吗?

所以我对这一切应该去的位置感到不满。

0 个答案:

没有答案