[图解]企业应用架构模式2024新译本讲解05-表模块2

1
00:00:00,970 --> 00:00:03,440
接下来,我们就来看案例了

2
00:00:03,690 --> 00:00:09,260
案例跟上一次事务脚本案例是一样的

3
00:00:11,210 --> 00:00:13,130
也是收入确认这个案例

4
00:00:14,460 --> 00:00:15,580
这是表结构

5
00:00:15,790 --> 00:00:24,470
跟我们前面那个是类似的,产品表

6
00:00:25,260 --> 00:00:27,880
这个是合同,收入确认表

1
00:00:01,830 --> 00:00:02,940
不一样的地方

2
00:00:03,150 --> 00:00:06,790
就是这个地方

3
00:00:07,360 --> 00:00:12,060
前面那个案例里面

4
00:00:12,550 --> 00:00:13,900
收入确认的地方

5
00:00:13,910 --> 00:00:16,140
它用了一个复合主键

6
00:00:17,040 --> 00:00:18,780
这里的话

7
00:00:19,040 --> 00:00:20,530
就没有,书里面没有用这个

8
00:00:20,790 --> 00:00:23,610
后面我们演示后来的代码的时候

9
00:00:24,430 --> 00:00:26,790
也没有用,直接主键就完了

10
00:00:26,800 --> 00:00:27,910
其实这是更好的

11
00:00:28,560 --> 00:00:31,820
像复合主键这种搞复杂了

12
00:00:31,830 --> 00:00:36,230
每个对象都有一个标识

13
00:00:36,320 --> 00:00:38,310
这个标识本来就应该没有什么意义的

14
00:00:38,320 --> 00:00:42,040
你不用去考虑怎么来构造标识

15
00:00:42,050 --> 00:00:43,400
用哪个字段好

16
00:00:43,410 --> 00:00:45,040
它本来就不应该属于

17
00:00:45,050 --> 00:00:47,550
这个里面的某个字段

18
00:00:48,070 --> 00:00:51,320
像前面的,拿一个签约日期

19
00:00:51,650 --> 00:00:52,760
不是,确认日期

20
00:00:53,370 --> 00:00:55,760
作为主键一部分,这是不对的

21
00:00:55,770 --> 00:00:58,380
因为这里面都是有领域含义的

22
00:00:59,450 --> 00:01:00,560
这本身就应该是一个

23
00:01:00,570 --> 00:01:04,560
无任何意义的,随机的标识,才对的

1
00:00:01,330 --> 00:00:04,160
接下来,我们就来看一下代码

2
00:00:06,900 --> 00:00:08,050
这代码同样的

3
00:00:08,060 --> 00:00:10,190
我先用UModel

4
00:00:10,200 --> 00:00:13,130
把代码逆转成

5
00:00:13,140 --> 00:00:18,880
类图、序列图,先看一下结构,还有相互的协作

6
00:00:19,740 --> 00:00:21,020
然后我们再运行一下

7
00:00:25,670 --> 00:00:27,570
逆转得到的类图是这样的

8
00:00:28,640 --> 00:00:34,240
这个类图我稍微调整了一下样式

9
00:00:35,430 --> 00:00:39,940
比之前截的图要好看一点,看得清楚一点

10
00:00:41,460 --> 00:00:45,090
你看,这是一个表模块的超类

11
00:00:45,810 --> 00:00:52,770
上面定义了,表模块构造器

12
00:00:52,780 --> 00:00:54,660
两个参数

13
00:00:54,670 --> 00:00:57,680
一个是数据集

14
00:00:58,110 --> 00:00:59,140
一个是表名

15
00:01:01,920 --> 00:01:08,270
然后,这里继承它

16
00:01:08,840 --> 00:01:12,570
构造器这里

17
00:01:14,030 --> 00:01:16,570
这里是一个

18
00:01:19,100 --> 00:01:20,780
数据集的参数

19
00:01:21,680 --> 00:01:22,120
就可以了

20
00:01:22,830 --> 00:01:24,770
然后把表名作为参数

21
00:01:24,940 --> 00:01:28,380
它是调用上面基类的

22
00:01:29,230 --> 00:01:34,190
超类的构造器,这个地方

23
00:01:36,820 --> 00:01:38,880
然后下面就是一样了

24
00:01:38,890 --> 00:01:40,160
这是主程序

25
00:01:40,570 --> 00:01:42,000
也是一个控制台的程序

26
00:01:42,750 --> 00:01:44,380
然后这里面不一样的

27
00:01:44,390 --> 00:01:46,230
就是产品类型

28
00:01:46,550 --> 00:01:51,080
之前是直接嵌在产品里面

29
00:01:51,090 --> 00:01:53,650
作为一个字符串存在的

30
00:01:53,660 --> 00:01:56,900
现在这里把它单独分出来

31
00:01:56,910 --> 00:01:58,260
作为一个枚举的类型

32
00:02:01,670 --> 00:02:02,590
下面这些方法

33
00:02:02,600 --> 00:02:07,310
跟前面事务脚本的方法是差不多的

34
00:02:07,700 --> 00:02:12,130
就多了一个什么,这里多了一个Allocate

35
00:02:14,360 --> 00:02:16,220
自己写了一个

36
00:02:17,050 --> 00:02:22,590
没有用之前Money类的方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/20135.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Android】手动下载gradle插件包,解决gradle插件包下载不全问题。

问题描述 拉取别人的项目时,因为网络问题gradle插件包一直下载不全,一直build。 解决方案: 打开gradle>wrapper文件下gradle-wrapper.properties,查看需要下载gradle-7.2-bin.zip。 distributionBaseGRADLE_USER_HOME distr…

cmd窗口输出内容乱码问题

出现这样的问题是因为编码格式和解码格式不一样导致的,cmd窗口的默认解码格式为GBK,如想修改cmd默认编码格式可以按照下面步骤操作:打开cmd窗口输入:chcp 65001 65001指的是utf-8编码如果不清楚编码对应的 页面编码是是多少&#…

访问github加速方法续集dev-sidecar

访问github加速方法续集dev-sidecar dev-sidecar 重要提醒 ------------------------------重要提醒1--------------------------------- 注意:由于electron无法监听windows的关机事件,开着ds情况下直接重启电脑,会导致无法上网&#xff0c…

【网络层】IP地址基础 与 子网掩码

文章目录 IP地址基础IP地址概念IP地址分类公网地址和私网地址 子网掩码子网掩码作用默认子网掩码网络地址、主机地址、广播地址 IP地址基础 IP地址概念 IP地址:IP Address 在网络中,通信节点都需要有一个IP地址 IP地址以点分十进制表示,有…

建设人工智能平台,主流GPU卡选型分析

国内外主流GPU卡性能分析!2024! 大模型兴起助推算力需求激增 2024年,深度学习与人工智能技术飞速跃进,Transformer、GPT-3等大模型在自然语言处理、图像识别、语音合成等领域大放异彩,开启AI新纪元。其庞大的参数与数…

Matlab操作Excel筛选指定数据的对应数据

Matlab中在表格中寻找指定汉字,并返回其所在行数, 将该行数的另一列提取出来。 目录 一、前言 二、直接在命令行输出 三、保存筛选数据excel 一、前言 源数据excel: 指定汉子:买,得到下面数据: 二、直接…

微信小程序埋点监听方案

场景:运营小程序,需要根据系统访问情况来做决策时。 后台:开发可配置监听页面路径,参数,事件名称等,类似以下格式,进行json保存。 组装数据接口返回给前端缓存到本地,然后进行校验编…

MyBatis延迟加载缓存分页逆向工程

文章目录 延迟加载概述步骤 缓存一级缓存介绍原理 二级缓存介绍 设置缓存对象策略原理开启步骤属性解释是否使用一级缓存 分页插件使用步骤 逆向工程介绍搭建使用增删修改查 延迟加载 概述 延迟加载本身是依赖于多表查询的 延迟加载中返回值要选择resultMap返回的结果一定是D…

数学建模 —— 插值与拟合(1)

一、matlab画图 1.1 plot(二维图形) plot(x) —— 缺省自变量绘图格式 plot(x,y) —— 基本格式,以y(x)的函数关系作出直角坐标图,如果y为nm的矩阵,则以x为自变量,作出m条曲线 plot(x1,y1,x2,y2,…,xn,…

神经网络算法详解与前沿探索

神经网络算法详解与前沿探索 随着人工智能技术的迅猛发展,神经网络成为机器学习领域的重要组成部分,广泛应用于图像识别、自然语言处理和推荐系统等。本文将详细探讨神经网络的基本原理、结构、训练过程及其应用实例,并扩展至更多相关领域和…

基于标准库的STM32的外部中断EXTI

毕设已经告一段落了,接下来准备开始整理一下毕设中用到的知识与技术细节,今天整理的是STM32从编码器获取数据的方式-----外部中断(EXTI): 外部中断分为四个硬件相关外设,GPIO/AFIO/EXTI/NVIC(E…

戴尔向“数”而行,以“质”致远,做新质生产力的躬耕者

【全球存储观察 | 热点关注】 自1984年戴尔成立,一路走来,戴尔科技集团40年长期持续的技术创新,一直引领全球科技行业的技术趋势。 到如今,AIGC风行一时,在重塑千行百业的同时,也加速了科技行业…

选择算法之冒泡排序【图文详解】

P. S.:以下代码均在VS2019环境下测试,不代表所有编译器均可通过。 P. S.:测试代码均未展示头文件stdio.h的声明,使用时请自行添加。 博主主页:LiUEEEEE                        …

北斗应急救援终端如何做好汛期重点行业安全防控?

【安全提示】 汛期各地高温多雨、极端天气增多 防汛和安全生产形势严峻复杂如何做好汛期重点行业企业安全生产风险防控? 顶坚北斗短报文终端V1单北斗定位终端 北斗应急救援终端在汛期重点行业安全防控中扮演着关键角色,其高可靠性、稳定性和丰富的功能扩…

达摩院AI早癌筛查技术闪耀联合国,癌症早治时代来临?

全文预计1200字左右,预计阅读需要6分钟。 5月30日,在日内瓦举行的联合国AI大会上,各国的代表性企业拿出最优秀的AI成果进行分享。其中代表中国的是阿里巴巴集团的下属机构-达摩院,其在现场播放的一段影像,让在场的所有…

uniApp子组件监听数据的变化的方法之一

props:{//用来接收外界传递过来的数据swiperList:{type:Array,default:[]}}, swiperList:是父组件传递过来的值 通过 watch 监听(在父组件中也同样可以使用,跟VUE的监听数据变化同理) watch:{//监听组件中的数据变化swiperList(ol…

Diffusion Facial Forgery (DiFF) ——一个新的大规模人脸伪造检测数据集

1. 概述 近年来,条件扩散模型(CDM)在图像生成领域备受关注。它能够通过简单的输入(如自然语言提示)生成令人惊讶的忠实图像。然而,这一进步也引发了新的安全和隐私问题。例如,怀有恶意的个人现…

结构体(C保姆级讲解)

前言: 为什么会有结构体,结构体可以用来面熟一个复杂对象,我们知道C语言中有哪些数据类型,有整型,有浮点型,有字符型,但是在生活中,我们需要描述一些比较复杂的东西,比如…

如何理解央行买卖国债?

浙商证券覃汉认为,央行对长债的风险持续关注,30年国债收益率较难突破2.5%,区间底部已经多次印证,在学习效应影响下,长端利率预计继续以震荡调整为主。 1、央行买卖国债的政策要求、历史经验、优势 2023年中央金融工作…

语音助手拦截,拦截小秘书

呼叫中心业务场景下会遇到很多的语音助手和语音小秘书,还有一些漏话提醒、语音信箱等;大部分原因是由于主叫号码标记问题导致的局端和终端拦截策略,电话没有真实有效的触达并产生了通信费,这让很多业务场景下通信成本上涨据不完全…