我参与了一个项目,用于构建可描述为规则引擎的Web应用程序,我们使用DDD方法来捕获和建模域和功能。坚持DDD应用程序中的应用程序特定数据
但是应用程序相关的数据呢,因为它是一个web应用程序,在安全/用户管理,日志管理方面将会有一个重要的部分。等等,杂项不属于域的一部分,但会有数据需要为他们管理。从DDD范例的初始阅读中,我们对领域模型以及存储库中的持久性有了一个公平的想法。应用程序服务层中包含的应用程序特定问题(如安全性,txn mgmt等)是我所了解的。
在这里/如何持久化应用程序特定的数据?如果这也应该被建模为不同的集合,并以类似的方式成为系统的一部分,或者应该以不同的方式构造(管理类与DAO交谈 - 类似交易脚本)?
所以,我认为,从应用的角度来看,这更多的是依赖于不同层次和包装的问题。假设你有一个SecurityManagerImpl,它将在基础设施层,并且应用层将使用它。但问题是你将在哪里为SecurityManagerImpl定义接口?该约定不具有对基础架构层的应用程序依赖性?它不仅仅是SecurityManager,还有一整套模型,比如UserModel等,如果你看到 – redzedi
就形成了自己的域。如果你的应用层需要日志和安全功能,那么它就知道它需要什么,并且可以在某些接口中表达需求。在应用程序层定义这些接口。在基础设施层实施它们。让域层不知道所有这些东西。 –