美文网首页
DDD学习笔记1 - 应用程序

DDD学习笔记1 - 应用程序

作者: 路亚历克斯 | 来源:发表于2019-08-18 15:12 被阅读0次

    核心设计 - 分层架构

    1. 领域模型:领域模型通常位于应用程序的中心位置,是领域逻辑的抽象实现;【领域服务、领域事件、聚合、实体、值对象】
    2. 用户界面:应用程序通过用户界面向外展示领域模型的概念,并允许用户在模型上执行各种操作;【展现与交互,视图View、视图模型ViewModel、控制器Controller】
    3. 应用服务:用户界面使用应用服务来协调用例任务、管理事务,并执行一些必要的安全授权;【服务编排&数据组装,事务控制、安全授权、应用事件】
    4. 基础设施:用户界面、应用服务和领域模型依赖于企业级的特定平台设施的支持。这些基础设施的实现细节通常包括组件容器、应用程序管理、消息系统和数据库、等。【业务无关的技术实现】

    关键澄清1

    1. 对于通用子域支撑子域来说,有时它们可能缺少一个完备的应用程序所需的方方面面,但这无妨大碍。
    • 有时,我们所创建的模型是用来支撑应用程序的,如身份与访问上下文、BES的Common套件、CM套件。即便对于IdOvation来说,它也将拥有自己的用户界面来完成一些管理和自助服务等功能。
    • 如果一个模型被用来支撑另一个模型,那么该支撑性模型可以简单到只是一个模块中的一组类而已。此时,它们可能提供一些特殊的概念,或者某些算法。
    • 示例:Time and Money Code Library
    • 完备的应用程序:如包括从用户界面层、应用层、领域层到基础设施层的全部实现。
    1. 这里使用的“应用程序”表示那些完成核心域模型实现的组件(注:一个独立的限界上下文的完整实现),通常包括领域模型本身、用户界面、内部使用的应用服务、和基础设施组件等。
    • 内部使用的应用服务:因为应用服务是用于直接支持用例实现的,但有些用例是跨领域的,则相应的应用服务也是跨领域的。所以,这里的“内部使用的应用服务”即是指用于支持本领域内的用例(场景)的应用服务。
    1. 当应用程序通过编程的方式对外提供服务时,‘用户界面’也就随之扩大了,将包含一种应用程序编程接口(API)

    关键设计

    1. 如何将领域对象渲染到用户界面的显示中?反之,如何将用户操作反映到领域模型上?

    相关文章

      网友评论

          本文标题:DDD学习笔记1 - 应用程序

          本文链接:https://www.haomeiwen.com/subject/enbrsctx.html