在履行单一责任的同时为MVC4应用程序创建服务层

时间:2013-02-17 20:35:33

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我正在努力学习一些最佳实践,同时我加入MVC4。我有一个包含三个项目的解决方案:

  1. Web:MVC的东西
  2. 核心:数据模型
  3. 测试:测试类
  4. 我现在正在尝试添加:

    4:服务:业务逻辑

    这将从我的控制器获取诸如“GetFilteredItems()”之类的逻辑,并将它们放入服务项目中,该项目依赖于Core,以及Web所依赖的。当我开始这样做时,我想要承担单一责任并为每个方法创建一个类。我的问题:

    1)这是一个好方法吗? 2)假设我需要一个获取ID并返回List的GetFilteredItems方法。在命名类和方法方面,这里的约定是什么?我不能拥有一个带有SampleClass()方法的SampleClass返回一些东西,对吗?

2 个答案:

答案 0 :(得分:1)

creating a service layer in MVC here进行了很好的讨论。

单一责任不要求使用单一方法的类。我以前从未听说过这种方法。在哪里讨论这种方法及其好处?

答案 1 :(得分:0)

是的,这似乎是一种很好的方法,尽管单一责任原则并不一定意味着您需要为每个方法创建一个单独的类。

只需确保您的服务类承担一项责任。

对于GetFilteredItems方法,您可以创建一个名为ItemService的类来包含它。 此服务还包含用于返回项集合的任何其他方法。

然后,您可以将与持久化项目相关的方法放在不同的服务中,依此类推......