java技术专家 【DDD(领域驱动设计)思想解读及优秀实践 22】|泛化建模(上):领域知识更抽象怎么办?

Java技术专家
专栏收录该内容
¥9.90
¥99.00
201 篇文章

【DDD(领域驱动设计)思想解读及优秀实践 22】|泛化建模(上):领域知识更抽象怎么办?

上节课,我们学习了“限定”技术。利用这个技术可以丰富模型的语义并简化关联。今天,我们要挑战领域建模中的另一个话题——泛化。

泛化是领域建模技能由初级水平迈向中、高级水平的门槛。也就是说,如果不懂泛化,那么你的领域建模水平就始终停留在中级以下。初步掌握了泛化,那么你的水平可能就能达到中级。把泛化玩得出神入化,那么大概就能达到高级水平了。

领域建模层面的泛化,大体上相当于面向对象设计中的继承和多态。如果你学习过“设计模式”的话,还记得刚开始的“痛苦”吗?其实,整本《设计模式》,无非是教你怎么灵活运用多态罢了。而在领域建模层面,与《设计模式》对应的就是《分析模式》。整本《分析模式》也无非是教你怎么成为使用泛化的高手。

我们现在要讲的内容,尽管达不到“分析模式”的高度,但是可以为你将来的学习打下基础,帮你在实际工作中解决一些相对复杂的问题了。

我安排了5节课的时间,带你分别由泛化的建模、泛化的数据库设计以及泛化的代码实现由浅入深地认识和理解泛化。

这节课会围绕着“在子项目上报工时”这个需求来展开讨论,演示泛化的建模方法。还是老办法,我作项目经理,你作架构师。

项目和子项目的“泛化”

我先来回顾一下需求:我们把业务由“零零后公司”扩展到了“九零后公司”,而“九零后公司”会把项目进一步分为子项目,然后在子项目上报工时。

先看看目前的模型是什么样(下图省去了和这节课无关的部分)。

java技术专家 【DDD(领域驱动设计)思想解读及优秀实践 23】|泛化建模(中):可以不用泛化吗? 887 阅读·21 点赞·21 收藏 阅读详情

相关推荐

java技术专家 【DDD(领域驱动设计)思想解读及优秀实践 26】|泛化的实现(下):怎样为泛化编写代码?

java技术专家 【DDD(领域驱动设计)思想解读及优秀实践 26】|泛化的实现(下):怎样为泛化编写代码?

大壮 992

java技术专家【DDD(领域驱动设计)思想解读及优秀实践 24】|泛化建模(下):怎样权衡是否采用泛化?

java技术专家【DDD(领域驱动设计)思想解读及优秀实践 24】|泛化建模(下):怎样权衡是否采用泛化?

大壮 899

NVIDIA Isaac平台体验:Isaac Sim与Isaac ROS的快速了解

NVIDIA Isaac平台是一个专为机器人和人工智能(AI)打造的加速平台,旨在为开发者提供一个全面的工具集,以加速机器人相关应用的开发和部署。材质定义语言(MDL)是一种用于描述材质属性和行为的编程语言,能够精确地定义材质的光学特性和物理属性。NVIDIA Isaac Sim 通过支持 MDL,进一步提升了仿真环境中材质的真实感和细节表现。精确的材质定义:MDL 允许开发者精确地定义材质的光学特性和物理属性,如反射率、折射率、粗糙度和透明度等。这使得仿真环境中的物体看起来更加真实和自然。动态材质。

全世界的博客 4万+

MATLAB实战:蓝牙GFSK调制解调全流程解析(附误码率优化技巧)

本文深入解析了蓝牙GFSK调制解调在MATLAB中的全流程实现,包括高斯滤波器设计、调制解调技术及误码率优化技巧。通过实战案例和代码示例,帮助工程师提升蓝牙通信系统的性能表现,特别是在降低误码率方面的有效方法。

weixin_29046035的博客 273

Android Audio - 支持多应用同时录音_Android8.1修改方法

支持多应用同时录音_Android8.1修改方法 源码路径: sdk\frameworks\av\services\audiopolicy\managerdefault\AudioPolicyManager.cpp 需要修改两个位置: audio_io_handle_t AudioPolicyManager::getInputForDevice() 在mpClientInterface-&gt...

iFinelio Tower 的博客 5755

浊音/清音/爆破音的时域及频域特性

第一周作业 浊音/清音/爆破音的时域及频域特性 思路:使用Audacity进行录制,时域部分将音频放大观察波形规律,频域部分生成并进行频谱分析。 (1)浊音U 时域分析: 时域表现为短周期性,波形比较规律。 频域分析: 频域上表现为频率集中在低频区域,共振峰较为明显,短时能量较高。 (2)清音S 时域分析: 时域波形没有周期性,整体振幅小于浊音。 频域分析: 频域波形平缓,无共振峰,能量比较集中。 (3)爆破音t 时域分析: 脉冲波,更为尖锐,整体上振幅降低。 频域分析: 没有像浊音一样的共振

Leylaaaa的博客 1224

案例:无人船测量点位数据+ArcGIS 10.6软件生成三维水下地形的两种方法

通常情况下,采用无人船进行水下地形测量,得到的是离散的,具有点号、日期、时间、东坐标(E)、北坐标(N)、水面高程、水下高程和水深等信息的点位数据,该数据一般由航带点位数据加水岸线组成,如下图所示: 原始点位数据格式如下: 下面讲解在ArcGIS软件中生成三维水下地形的两种常用方法。 一、构建不规则三角网(Tin) 1、创建Tin 生成的Tin: 2、Tin转栅格 Tin to Raster: 三维展示: 二、空间插值 栅格插值常用的方法有:克里...

智慧空间实验室 6739

微搭低代码实现用户登录及注册功能

在小程序开发中,我们可以拿到微信用户的openid,openid可以作为用户的唯一标识,在查询数据的时候可以进行数据过滤实现查询自己提交的数据。那微搭中是否也有openid这个概念,可以获取用户自己提交的数据呢? 答案是肯定的,那要怎么去做呢?思路是先创建一个数据源方法,在数据源中返回openid,然后低代码中可以调用数据源的方法并且赋值给全局变量,这样在后续的业务中从全局变量就可以获取openid了,方便做数据权限的控制。 为了实现这个目的,我们从创建数据源开始。 创建数据源 我们先创建一个用户管理的数据

低代码布道师的博客 2989

机器人控制仿真软件:MATLAB Simulink Control System Toolbox_(1).MATLAB基础知识

MATLAB(Matrix Laboratory)是由MathWorks公司开发的一种高性能数值计算和可视化软件。它广泛应用于科学计算、工程设计、信号处理、控制系统设计、图像处理等领域。强大的矩阵运算能力:MATLAB的核心是矩阵运算,能够高效处理大规模的数值数据。丰富的工具箱:MATLAB提供了大量的工具箱,如Control System Toolbox、Simulink、Signal Processing Toolbox等,这些工具箱覆盖了多个应用领域。易于使用的图形界面。

kkchenjj的博客 898

3.4 ISIS和OSPF之间路由引入

通过以上输出可以看到OSPF的路由引入到了IS-IS中。通过以上输出可以看到ISIS的路由没有传递给OSPF。通过以上输出可以看到OSPF的路由没有传递给ISIS。通过以上输出可以看到ISIS的路由被引入进了OSPF。掌握在IS-IS中引入OSPF路由的方法。掌握在OSPF中引入IS-IS路由的方法。图3-3:ISIS和OSPF之间路由引入。在R3上把ISIS的路由引入到OSPF。OSPF引入外部路由的缺省度量值为1。在R3上把OSPF的路由引入到ISIS。引入的外部路由类型为Type2。

lwljh134的博客 1798

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

上一篇: java技术专家 【DDD(领域驱动设计)思想解读及优秀实践 21】|用“限定”建模:怎样简化一对多关联?
下一篇: java技术专家 【数据库专题】【mysql InnoDB引擎底层解析】
不走小道
博客等级 码龄12年 3488粉丝 270原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不走小道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值