我多年来一直使用 .Net 开发企业应用程序。
我的应用程序通常具有包含映射到 SQL 数据库表的实体的领域模型。
我使用存储库模式、依赖注入和服务层。
最近我们开始开发 MVC 3 项目,并且就该将哪些逻辑放在哪里进行了辩论。 我接触到了“瘦控制器/厚模型”架构,并想知道服务层应该如何适配。
选项1-模型与服务交互 控制器很薄,调用模型上的方法。模型“知道”如何从 DB 加载自身并与存储库或服务交互。例如,customerModel 有一个 Load(id) 方法,并加载客户和一些子对象,比如 GetContracts()。
选项2-控制器与服务交互 控制器请求服务检索模型对象。加载/存储逻辑等都在服务层中。模型是仅具有数据的纯实体模型。
为什么选项1会是更好的选择,特别是当我们谈论企业应用程序时,我的经验告诉我要分离关注点,尽量使模型和控制器变得轻巧,让专门的服务执行业务逻辑(包括 DB 交互)。
感谢所有建议和推荐好资源。
最近我们开始开发 MVC 3 项目,并且就该将哪些逻辑放在哪里进行了辩论。 我接触到了“瘦控制器/厚模型”架构,并想知道服务层应该如何适配。
选项1-模型与服务交互 控制器很薄,调用模型上的方法。模型“知道”如何从 DB 加载自身并与存储库或服务交互。例如,customerModel 有一个 Load(id) 方法,并加载客户和一些子对象,比如 GetContracts()。
选项2-控制器与服务交互 控制器请求服务检索模型对象。加载/存储逻辑等都在服务层中。模型是仅具有数据的纯实体模型。
为什么选项1会是更好的选择,特别是当我们谈论企业应用程序时,我的经验告诉我要分离关注点,尽量使模型和控制器变得轻巧,让专门的服务执行业务逻辑(包括 DB 交互)。
感谢所有建议和推荐好资源。