• [答疑]统计报表和被统计的数据是聚合还是依赖关系


    DDD领域驱动设计批评文集>>

    《软件方法》强化自测题集>>

    《软件方法》各章合集>>

    可乐 2022-6-16 11:55

    这两个的关系,应该表达成聚合关系,还是依赖关系呢?

    UMLChina潘加宇

    什么关系也没有,独立的

    这个**统计是冗余的快照。

    这个类的对象是统计某个或某些类的对象的属性值得到的,从领域逻辑上看,系统不需要这个类,搞一个这种类(表)的借口往往是性能,临时计算等待时间太长,所以算好了放在这个类(表)里。

    这个类在分析模型(核心域模型)中不需要存在。

    如何通过增加冗余来应对性能问题,这是一个实现的套路,和具体的某个领域无关,不应该带到领域模型里面来,它和分析模型(核心域模型)中的类没有关系。

    否则你想想,如果你有三个类(表)ABC,里面分别有若干属性,需要查询和组合ABC的属性得到的报表可能很多,像图中那样,如果要画线的话,岂不是要到处画?

    存在关联关系的一种情况是:系统需要记住“曾经对那些类(表)作统计”的细节(理由可能是为了收费?),这个信息不是冗余的,属于分析模型的一部分。

    举个例子,有一个类“人员”,属性:身份证号、姓名、生日、性别。

    有一个报表“2022年出生人员按性别统计”,属性:性别,出生人数。这个属于可以计算的冗余信息。

    但是,如果系统要记住曾经对哪个人做了“统计”的操作,以便给他发点钱补偿一下他被统计的损失,那么就有“人员统计”类,属性:人员、被统计时间。

    这个不是冗余的,从人员(身份证号、姓名、生日、性别)计算不出来。

    可乐 2022-6-16 13:37

    潘老师,那如何表达我想表达的那种过程呢?

    UMLChina潘加宇

    序列图上就是f以ABC为参数,创建报表

    缺失的基础知识可能较多,有空可以好好看一下《软件方法》第8章

  • 相关阅读:
    Flutter 打包 windows桌面端可执行文件
    PyTorch(四)数据转换与构建神经网络
    C. Beautiful Sets of Points(找规律&杂题)
    cmake学习过程记录
    “Docker操作案例实践“
    Python基础运算分享
    定时任务相关
    SpringSecurity(六)【自定义认证案例】
    python工具方法 29 基于Flask搭建自己的视频服务器网站
    OFDM同步--符号定时偏差STO
  • 原文地址:https://blog.csdn.net/rolt/article/details/125551664