域和应用程序服务之间的主要区别是什么? (我正在使用 NHibernate)
哪一层更适合业务逻辑?什么是最佳做法?
-S# Architecture 使用应用程序服务作为“协调层”,但不必费心解释为什么它不是领域服务应该是业务逻辑。
最佳答案
您的里程可能非常多,但我会尝试根据我使用它们的方式来定义。无论您的持久层如何,我都会将它们定义为实际使用:
就像我说的,这可能不符合每个人的定义,但这有助于我确保将正确的问题放在正确的位置。
至于将业务逻辑放在哪里更好 - 我实际上认为这很棘手。这种方法有不止一种类型的业务逻辑。如果有一个特定于应用程序的逻辑需求无法在域中定义,我会把它放在应用程序服务层。直接影响领域的东西,不管是什么应用程序,我都会放在领域服务层。
问题实际上是花时间来确定什么是真正的“领域问题”。例如,除非知道他的电子邮件地址,否则用户可能无法对某个任意应用程序发表评论。您可以争辩说这属于任一层。关键是真正保持一致。
关于architecture - 领域服务与应用服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3839386/