DDD的基本概念澄清
目录
什么是DDD
•Domain Driven Design
•领域是软件要解决的问题区域
•通过对领域知识建立模型,形成团队内各成员的通用语言,指导设计和实现,从而达到为客户解决问题的目的
•当领域模型发生改变时,开发人员需要重构,以便反映模型的变化,这样新知识就合并到软件中
Ubiquitous language (通用语言)
•将领域模型作为语言的支柱
•领域模型包括类和主要操作的名称
•领域模型尽量以文本为主,穿插简化图为说明
•不管是画图、写文档、写代码还是讲话,都用的同一种术语
•语言是演进的
Layered architecture(分层架构)
* 用分层来隔离领域
* 层中的任何元素都仅依赖于本层其他元素,或其下层元素。
* 高内聚,低耦合
* 领域层应重点放在如何表达领域模型上,而不需要考虑自己的显示和存储问题
•用户界面层
•向用户显示信息,解释用户命令
•应用层
•尽量简单,不包含业务规则或知识
•只为下层的领域对象分配任务,使他们协作
•领域层
•负责表达业务概念,业务状态信息和业务规则
•基础设施层
•上面各层提供通用的技术。比如持久化
Entity(实体)
•由标识定义的对象,而不是属性
•整个生