【发布时间】:2011-10-16 23:43:25
【问题描述】:
我正在尝试找出构建易于维护和可测试的架构的最佳方法。在经历了几个项目之后,我看到了一些非常糟糕的架构,我想避免在我自己的项目中犯下未来的错误。
假设我正在构建一个相当复杂的三层应用程序,并且我想使用 DDD。我的问题是,我应该把我的业务逻辑放在哪里?有人说它应该放在服务(服务层)中,这确实有道理。拥有许多遵守单一职责原则的服务是有意义的。
但是,有人说这是一种反模式,业务逻辑不应该在服务层实现。这是为什么呢?
假设我们有IAuthenticationService,它有一个带有bool UsernameAvailable(string username) 签名的方法。该方法将实现所有必需的逻辑来检查用户名是否可用。
根据“这是一个反模式”的人群,这里有什么问题?
【问题讨论】:
标签: domain-driven-design business-logic service-layer