我使用.Net开发企业应用程序已经有很多年了,我的应用程序通常有一个域模型,其中包含映射到SQL DB表的实体。我使用存储库模式、依赖注入和服务层。
最近,我们开始了MVC3项目的工作,我们讨论了应该把哪种逻辑放在哪里。我遇到了瘦控制器/胖模型体系结构,想知道服务层如何适应
选项1-模型与服务对话
控制器是瘦的,调用模型上的方法。这些模型“知道”如何从数据库中加载自己的文件,并与存储库或服务通信。例如,customerModel有一个Load(id)方法,并加载customer和一些子对象,如GetContracts()。
选项2-控制器与服务对话
控制器请求服务检索模型对象。加载/存储等的逻辑在服务层。该模型是一个纯实体模型,只包含数据。
为什么选择1会是更好的选择,特别是当我们谈到企业应用程序时,我的经验告诉我要分离关注点,尽可能地保持模型和控制器的精简,并让专门的服务来处理业务逻辑(imcl.DB交互)
感谢所有对好资源的建议和参考。
发布于 2012-01-05 07:28:16
选项1:您可以考虑对==服务进行建模。模型也是业务层。
选项2是一个贫血域模型反模式。http://en.wikipedia.org/wiki/Anemic_domain_model
发布于 2012-01-13 14:57:24
选项2就是所谓的“肥肥丑陋的控制器架构”(Reference to author of this expression)。这种解决方案通常与MVC精神背道而驰,因为它打破了关注点的分离。
https://stackoverflow.com/questions/8735466
复制相似问题