知识卡片
消息契约模型是DTO模式的体现并扩展其场景
内容
在菱形对称架构中,作者依据发布语言模式和限界上下文的稳定空间特性提出的消息契约模型,实际上就是DTO模式的体现,通常定义在北向网关的本地服务层,远程服务与应用服务都以它作为接口输入参数和返回值。这扩展了DTO的应用场景,使其不止限于进程间数据传递,还能对领域模型提供保护;南向网关有时也需定义消息契约模型,作为防腐层的一部分隔离上游限界上下文的领域模型。为支持进程间传递,它必须支持序列化,最好设计为Java Bean(公开类、默认构造函数、getter/setter),以便框架反射创建组装;它通常还应是贫血对象(目的是传数据),但因与领域模型有映射关系,可能需为其定义转换方法。发散:消息契约模型 = DTO(传输)+ 边界保护(隔离领域模型)双重职责。
参考来源
- 位置:《解构领域驱动设计》第19章 19.1.2(源文件:_epub-src/OEBPS/032.xhtml)
- 结论依据:原文指出消息契约模型即DTO体现,并扩展为对领域模型的保护,需支持序列化且宜为贫血Java Bean。
- 原始内容:它实际上就是DTO模式的体现……这实际上扩展了DTO的应用场景,使其不止限于进程间的数据传递,还能对领域模型提供保护。