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