3

我通常为我开发的所有软件编写用例。对于每个用例,我通常编写一个控制器来引导流程(实现一个用例)。

我最近开始使用 Asp.net MVC 开发 Web 应用程序。Asp.net MVC 的最佳实践之一是在控制器中保留非常少的逻辑。我无法弄清楚我将如何改变我的设计来反映这一点。

我基本上想要一种封装我的用例的方法。

4

3 回答 3

1

将尽可能多的业务逻辑推送到您的模型和辅助类,并使用控制器主要用于处理 URL 调用和实例化相关模型、从它们中检索数据以及将数据推送到视图。视图和控制器应该做出尽可能少的决定。

于 2010-01-18T15:06:44.067 回答
1

我认为拥有胖模型和瘦控制器通常是任何语言的好习惯,而不是特别是 .NET MVC。查看这篇精彩的文章,它通过一个示例场景展示了 Ruby on Rails 中胖模式的优势(但这些想法适用于任何语言)。

为了在代码中表示用例,我认为对它们来说更好的地方是在测试用例中而不是在控制器中。

于 2010-01-18T09:03:48.033 回答
1

创建一个业务组件来封装用例。例如,如果您有一个休假管理系统,您将拥有申请休假、批准休假请求、拒绝休假请求等用例。为此,您可以创建一个名为 Leave Manager 的业务组件(类),其中包含方法(函数/操作),如“应用”、“批准”、“拒绝”等。这些方法将封装您的用例。这些方法会将您的业务实体和数据存储类作为输入并执行用例。

class LeaveManager{
     int Apply(from, to);

     bool Approve(leaveApplicationId, approverId);

     bool Reject(leaveApplicationId, approverId);
}

然后,您可以在控制器中使用此业务组件,通过提供所需的参数来执行用例。

于 2011-09-13T15:11:09.217 回答