一、核心思想与解决的痛点问题
1.1 模型和建模
模型是领域的抽象和模拟
建模是针对特定问题建立领域的合理模型
1.2软件系统复杂性
业务复杂导致模型复杂
技术实现引入额外复杂性
DDD核心思想一:模型分解
DDD核心思想二:模型驱动设计
模型驱动设计(Model Driven Design):通过分层架构隔离领域层、仔细选择模型和设计方案等措施保持实现与模型的一致。
领域驱动设计通过分解模型和模型驱动设计控制复杂性。
二、面向对象与敏捷与ddd区别于联系
2.1 DDD与面向对象
区别:OOAD没有战略设计;DDD通过战略设计划分领域和模型。OOAD仅用对象描述世界;DDD的描述更细致。
联系:OOAD和DDD都是建模和设计思想,部分建模方法和工具可复用。
2.2DDD与敏捷
敏捷是增量式开发模式。
敏捷:关注流程和文化;DDD:关注建模设计方法。敏捷:重人员轻文档;DDD:重视统一语言建立