[英]Do I need to Separate Business Objects and Business Logic? Asp.net MVC with Repository Pattern in C#
我很难找到答案。 基本上,现在我有以下几层:
我的存储库将返回业务对象。 例如,GetCustomer将返回客户。
但是,在我的业务层中,我还想添加将使用存储库添加/更新/删除记录的逻辑,以便可以在MVC控制器中重用这些方法。 但是,这不起作用,因为我无法让我的数据访问层引用我的业务层,也无法让我的业务层引用我的数据访问层。 (它创建了不允许的循环引用)。
你们认为什么是最好的解决方案? 我应该将业务逻辑放入自己的项目中吗?
所以代替:
Hello.Data
Hello.Business
我将有:
Hello.Data
Hello.Business
Hello.BusinessLogic
还是我在想这一切错了? 谢谢!
您为什么要将业务逻辑与业务模型分开? 逻辑应该在模型中。
除了可能的小型通用实用程序库之外,业务逻辑层也不必引用任何内容。 基本上,它应该不依赖于基础结构问题(例如应用程序技术,数据库技术等)。 它应该只包含业务逻辑。
所有其他层都应引用业务逻辑层。
但是,这不起作用,因为我无法让我的数据访问层引用我的业务层,也无法让我的业务层引用我的数据访问层。
正确! 本设计中的错误是把商业逻辑层引用了数据访问层的 。 不应该这样
它应 ,然而,包含用于由所述数据访问层实现的数据访问(和其他基础设施问题) 接口 。 业务逻辑层只需要了解接口,就不知道或不在乎什么实现了这些接口。
然后将使用依赖项注入容器将实现连接到接口。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.