将DataService调用放入Helper类?

时间:2010-10-14 21:58:24

标签: c# architecture mvvm

我有几个部分相同的ViewModel:del / add / export等文件。目前,调用这些方法的代码存在于视图模型中。所以我必须复制/粘贴它......当我把这些代码放在DocumentHelper类中时,我只有一次,但你是否认为有任何理由反对从Helper类调用数据库方法?

2 个答案:

答案 0 :(得分:2)

强调 YES ,您应该将代码移动到帮助程序类。

我坚信实用程序员的Don't Repeat Yourself原则。这也是你应该努力遵循的。通过复制和粘贴代码,它使得更改变得令人讨厌,因为您必须找到复制该代码的每个地方并在那里进行更改。复制粘贴技术可以破坏你可能拥有的任何敏捷性,并使重构成为一场噩梦。

答案 1 :(得分:0)

我想发表评论支持Travis G的评论,但我没有房间 - 因此这个'答案'。

您要小心如何安排系统的依赖关系;记住你想要的东西是如何重复使用的。如果DocHelper引用模型,那么只要您想重新使用Dochelper(比如在另一个应用程序中),那么您也必须引入该模型。

两种可能的方法:

模型上下文中“常见”的东西位于模型组件中。

MyApp.Model  // including Model Helpers
MyApp.Common // contains generic helpers

就引用而言,Model可以引用Common - 但不是相反。

模型上下文中“常见”的东西位于一个单独的程序集中 - 该程序集是一个专用的模型“帮助程序”;真正通用的东西应该在一个单独的组件中,例如:

MyApp.Model
MyApp.ModelHelper // Model helpers are kept separate
MyApp.Common      // contains generic helpers

在这种情况下,Model会引用ModelHelperModel和/或ModelHelper可以引用Common