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类的方法