我的回答是,因为这两种实现方式会导致领域对象和外界交互时的主动性不同,领域对象触发一个领域事件是是一个主动的行为,而领域对象调用Repository的某个方法是一种请求性的被动的行为。事件可以确保领域对象永远处于某个领域逻辑的起始位置,这样就能确保领域模型的业务逻辑不会被分散。整个领域模型是完全封闭的,它不需要...
因为以前我开发过一个叫做“蜘蛛侠论坛”的网站,官方演示地址:http://www.entityspider.com/(论坛目前已关闭,需要源代码的可以联系我),但在我学习了DDD之后,才明白原来之前我所做的设计是贫血模型+事务脚本的设计方法。这种设计方法有很多不足,最大的不足就是业务逻辑不能重用,业务逻辑没有组织为一个可重用的自...
在探索DDD(领域驱动设计)思想的过程中,我深刻体会到了它对软件系统开发的重要性。这种设计理念旨在帮助我们构建出能够有效应对复杂业务环境的高质量软件系统。软件系统不仅仅是简单的程序,它是解决特定业务问题的成果,良好的软件设计能够为我们提供一个稳固的架构,以便在业务发展中提供良好的扩展性和维护性。然而,...
DDD(领域驱动设计)是一种软件设计方法,它强调以业务领域为核心来驱动软件的设计和开发。 DDD 的设计初衷是为了解决复杂业务领域的设计和开发问题,它提供了一套丰富的概念和模式,帮助开发者更好地理解和建模业务领域,从而提高软件的质量和可维护性。 一、DDD主要组成 DDD 的主要模式包括实体(Entity)、值对象(Value O...
于是我去买了两本关于领域驱动设计的书本和一本企业应用架构模式的书。看了之后也掌握了一些理论基础。但总感觉需要通过做一个实际项目来测试自己所学到的知识。因为以前我开发过一个叫做“蜘蛛侠论坛”的网站,官方演示地址: http://www.entityspider.com/,但在我学习了DDD之后,才明白原来之前我所做的设计是贫血...
首先,既然是领域驱动设计,最后就会设计出一个模型,该模型只包含领域对象和领域逻辑。我学习领域驱动设计时间还很短,所以也没能设计出好的模型出来。但我也确实在思考该如何为我设计的那个自以为设计良好的模型和外界解耦。然后通过各处查看资料也积累的一些技巧,在此在狗胆拿出来和大家分享一下。