我正在尝试找出构建易于维护和可测试的架构的最佳方法。在经历了几个项目后,我看到了一些非常糟糕的架构,我想避免在自己的项目中犯类似的错误。
假设我正在构建一个相当复杂的三层应用程序,并且我想使用DDD。我的问题是,业务逻辑应该放在哪里?有人说它应该放在服务(服务层)中,这确实有道理。拥有许多符合单一职责原则的服务是有意义的。
但是,有些人说这是反模式,业务逻辑不应该在服务层中实现。为什么会这样?
假设我们有一个IAuthenticationService
,其中包含具有bool UsernameAvailable(string username)
签名的方法。该方法将实现所有必需的逻辑以检查用户名是否可用。
“这是反模式”团队认为问题在哪里?