我正在尝试使用ASP.Net学习MVC,并阅读Steve Sanderson的书。有一件事让我感到困惑,那就是业务逻辑应该放在哪里?
例如,当删除一个产品时,Sanderson只在他的CartController中调用了productsRepository的Delete方法。这对我来说很奇怪,因为如果有任何业务逻辑,比如确保该产品首先不在任何人的购物车中等,它必须放在products repository或CartController中。
这两个地方都不适合放置业务逻辑;products repository旨在轻松替换(从使用db切换到使用session),而使用Controller意味着您将业务逻辑放在UI层中。
难道他不应该使用一个包含业务逻辑并调用repository的delete方法的类吗?repository是业务逻辑类的成员变量吗?