trufun 9:36:01
UML开课啦,今天讨论类关系
talenter(1) 9:36:39
来了
そうふく(2) 9:37:57
关联(聚合,组合),依赖,泛化(实现,继承)
trufun 9:37:59
类是面向对象的核心,类关系是核心中的核心
そうふく(2) 9:38:04
你们在哪里讨论
そうふく(2) 9:38:12
我也听下
trufun 9:38:20
类是面向对象的核心,类关系是核心中的核心
trufun 9:38:31
都可以听
そうふく(2) 9:38:47
在那里讨论?就在这个群里讨论?
trufun 9:38:59
是的
そうふく(2) 9:40:04
重点讲下关联和依赖的区别
trufun 9:40:27
需求分析的目的是找出业务背后的逻辑,而类关系就是这种逻辑的表达
talenter(1) 9:40:40
恩
trufun 9:41:30
关键是对具体业务要能找出逻辑表达
trufun 9:44:00
今天我出个题,大家试找找逻辑关系
trufun 9:45:12
信用卡是一种支付工具,银行的卡部管理信用卡,每张信用卡只属于一个账户,信用卡有卡号,余额,一张信用卡有多笔交易记录,
trufun 9:47:35
找类和类关系,并说明理由(任何设计都是有理由的)
そうふく(2) 9:50:34
银行的卡部管理信用卡关联信用卡(有卡号,余额,账户)且是(1...N),信用卡再关联交易记录(1...N).
trufun 9:52:29
银行的卡部管理信用卡关联信用卡(有卡号,余额,账户),关系不对
そうふく(2) 9:59:50
银行的卡部管理信用卡关联账户,账户关联信用卡(有卡号,余额)
talenter(1) 10:01:28
信用卡 银行的卡部 账户 交易记录 先提炼这些类 对吧?
talenter(1) 10:01:39
talenter(1) 10:02:41
卡部 关联账户?
talenter(1) 10:02:42
为啥?
talenter(1) 10:02:51
我感觉 信用卡是核心
talenter(1) 10:03:02
都和信用卡 建立关系才行
talenter(1) 10:03:54
信用卡是核心 其他的 卡部 和信用卡 1..N 账户--卡 1..1 交易记录--信用卡 N ..1
trufun 10:04:20
你们眼光太厉害了
乐百氏(14048124) 10:02:20
支付工具是信用卡的爸爸类。
trufun 10:02:25
再找 很好
毛*队(3 10:02:47
还有啊??
trufun 10:03:02
有
talenter(1) 10:06:36
银行的部门 作为 卡部的父类
talenter(1) 10:07:06
卡部只是银行部门的一种
trufun 10:07:25
银行的部门 作为 卡部的父类是不对的
talenter(1) 10:07:33
哦 为什么呢?
trufun 10:07:48
不是继承关系,是聚合关系
talenter(1) 10:07:50
有卡部 还有 财务部 核算部 能找个父类吧
talenter(1) 10:07:51
哦
talenter(1) 10:08:12
聚合关系怎么解释? 能帮助说下吗?
talenter(1) 10:09:48
哦 银行的部门 太大了。。 就是提炼个 部门父类。
talenter(1) 10:09:54
部门和 卡部
そうふく(2) 10:12:09
银行的部门为抽象类,卡部继承银行的部门也是可以的啊
talenter(1) 10:12:32
我是这么认为的 可能 刚才描述的不对
そうふく(2) 10:12:52
银行的部门可以分开写继承银行的部门类就可以了啊
talenter(1) 10:13:01
银行的部门 我可能刚才表达的是个集合的概念 所以老师说是 聚合关系
trufun 10:13:11
没有必要抽象,因为本业务不涉及其他部门的事
talenter(1) 10:13:18
哦
そうふく(2) 10:13:18
同时提取公共部门写到抽象类中
talenter(1) 10:13:28
还有?
talenter(1) 10:13:31
继续推敲
talenter(1) 10:14:30
类没了吧?
talenter(1) 10:15:34
没了 是不是找关系了
trufun 10:17:17
银行和卡部是聚合关系
そうふく(2) 10:18:10
还有呢?
trufun 10:18:40
再找找卡部和信用卡的关系
talenter(1) 10:18:39
银行也要抽取 对
talenter(1) 10:18:45
聚合和组合 怎么区分?
trufun 10:19:00
再找找卡部和信用卡的关系
そうふく(2) 10:19:26
组合是一特殊的聚合关系,他的关系强度比聚合更强
そうふく(2) 10:19:38
关联
trufun 10:20:04
不对
Ethan Woo(184912535) 10:21:12
卡不管理信用卡,“管理”表示出一种动作
Ethan Woo(184912535) 10:21:22
具体可表示成依赖
trufun 10:21:35
很好
そうふく(2) 10:23:23
也可以是依赖(信用卡存放到集合类中)
trufun 10:25:46
下面再找找信用卡和账户的关系
talenter(1) 10:28:05
依赖?
trufun 10:28:21
不对
そうふく(2) 10:28:26
关联
talenter(1) 10:28:45
恩 关联
trufun 10:28:57
对,单向还是双向?
talenter(1) 10:29:02
有时候对这些关系 分不太清楚
talenter(1) 10:29:06
单向
trufun 10:29:14
好
talenter(1) 10:29:34
老师,依赖和关联 能举例子说下吗
talenter(1) 10:29:36
好区分
trufun 10:30:00
属性和方法参数的区别
そうふく(2) 10:30:16
关联是has a的关系
talenter(1) 10:37:22
但是 很少这么做
talenter(1) 10:37:26
一直在违背面向对象
trufun 10:39:27
下面再找找信用卡和卡号、余额的关系
talenter(1) 10:40:00
卡号 余额是信用卡的部分内容
trufun 10:40:22
关系?
そうふく(2) 10:40:07
依赖
talenter(1) 10:40:23
组合
trufun 10:40:29
不对
talenter(1) 10:40:35
依赖 组合都不对?
trufun 10:40:50
talenter(1) 10:40:23
组合
回答很对
talenter(1) 10:40:56
哦
talenter(1) 10:58:41
也是组合?
talenter(1) 10:58:59
也是哈
talenter(1) 10:59:22
不过 组合感觉是一种构成
talenter(1) 10:59:31
信用卡 没有记录的话也可以嘛 没交易
trufun 10:59:46
是的
trufun 11:00:01
所以不是组合
talenter(1) 11:00:21
关联呢?
talenter(1) 11:00:26
也不对
talenter(1) 11:00:43
依赖? 一直对这些关系很模糊
talenter(1) 11:00:52
事儿很明白 时而很糊涂啊
trufun 11:01:02
关联是对的,双向还是单向?
trufun 11:02:44
多重性可以为0
talenter(1) 11:03:13
哦
talenter(1) 11:03:18
如何理解多重性?
talenter(1) 11:03:27
既不是单向也不是双向
talenter(1) 11:03:43
我想问下,这个关联的时候考虑单向双向 意义是什么?
talenter(1) 11:03:48
对业务的理解?
trufun 11:04:41
从信用卡可以查到交易记录,从交易记录可以查到使用的信用卡,关系?
talenter(1) 11:05:01
哦
talenter(1) 11:05:06
对
talenter(1) 11:05:13
刚才上午说的
talenter(1) 11:05:17
卡和账号的关系
trufun 11:05:23
从信用卡可以查到交易记录,从交易记录可以查到使用的信用卡,关系?
talenter(1) 11:05:32
双向
trufun 11:05:49
很好
talenter(1) 11:05:55
卡和账号的关系 怎么感觉也有点类似卡和交易记录的关系呢
talenter(1) 11:05:57
这么说的话
talenter(1) 11:06:10
从卡能查到账号 账号应该能查到卡巴
trufun 11:06:11
单向
trufun 11:06:20
很好
talenter(1) 11:06:37
这个互相能查为啥是单向呢
talenter(1) 11:07:01
我开始说单向是因为 账号不主动关联卡
talenter(1) 11:07:11
卡主动关联账号 而已 所以是单向
trufun 11:07:28
说的对
trufun 11:08:20
从卡中查不到账户
talenter(1) 11:08:56
哦 卡只是个账户的载体
talenter(1) 11:09:00
也是
talenter(1) 11:09:04
明白点了 哈哈 谢谢哈
trufun 11:10:11
双向关联,卡和交易记录
talenter(1) 11:11:40
恩
trufun 11:14:43
下面再找找信用卡和支付工具之间的关系
talenter(1) 11:14:55
继承
trufun 11:15:15
很好
talenter(1) 11:16:39
这种好识别点
talenter(1) 11:17:04
请问老师,什么时候使用接口 什么时候使用抽象类 或者父类。
trufun 11:18:38
对外封装方法用接口,扩展性设计用抽象
talenter(1) 11:19:42
哦 好的 谢谢
trufun 11:24:48
最后一个问题,如果给信用卡设计基类,应该为什么?为什么?
talenter(1) 11:25:20
想想
talenter(1) 11:30:40
恩
talenter(1) 11:30:54
信用卡有多种
talenter(1) 11:30:59
比如 金卡
talenter(1) 11:31:03
联名信用卡
talenter(1) 11:31:21
有一些共同点也有些不同点 但是共同点多
天意@来生缘(5) 11:31:26
信用卡应该设计成抽象类吧
talenter(1) 11:31:26
所以考虑设计基类
trufun 11:31:42
这是从卡角度抽象,给一个基类
talenter(1) 11:31:56
从扩展角度的话
talenter(1) 11:32:06
可能会发行 不同的信用卡
talenter(1) 11:32:28
考虑到信用卡 最基本的就是 有卡号 余额 持卡人信息等等。。
trufun 11:36:03
乐百氏(14048124) 11:32:52
银行卡
乐百氏(14048124) 11:33:08
泛化关系
talenter(1) 11:37:20
哦
talenter(1) 11:37:39
继承关系也行吧
trufun
UML开课啦,今天讨论类关系
talenter(1) 9:36:39
来了
そうふく(2) 9:37:57
关联(聚合,组合),依赖,泛化(实现,继承)
trufun 9:37:59
类是面向对象的核心,类关系是核心中的核心
そうふく(2) 9:38:04
你们在哪里讨论
そうふく(2) 9:38:12
我也听下
trufun 9:38:20
类是面向对象的核心,类关系是核心中的核心
trufun 9:38:31
都可以听
そうふく(2) 9:38:47
在那里讨论?就在这个群里讨论?
trufun 9:38:59
是的
そうふく(2) 9:40:04
重点讲下关联和依赖的区别
trufun 9:40:27
需求分析的目的是找出业务背后的逻辑,而类关系就是这种逻辑的表达
talenter(1) 9:40:40
恩
trufun 9:41:30
关键是对具体业务要能找出逻辑表达
trufun 9:44:00
今天我出个题,大家试找找逻辑关系
trufun 9:45:12
信用卡是一种支付工具,银行的卡部管理信用卡,每张信用卡只属于一个账户,信用卡有卡号,余额,一张信用卡有多笔交易记录,
trufun 9:47:35
找类和类关系,并说明理由(任何设计都是有理由的)
そうふく(2) 9:50:34
银行的卡部管理信用卡关联信用卡(有卡号,余额,账户)且是(1...N),信用卡再关联交易记录(1...N).
trufun 9:52:29
银行的卡部管理信用卡关联信用卡(有卡号,余额,账户),关系不对
そうふく(2) 9:59:50
银行的卡部管理信用卡关联账户,账户关联信用卡(有卡号,余额)
talenter(1) 10:01:28
信用卡 银行的卡部 账户 交易记录 先提炼这些类 对吧?
talenter(1) 10:01:39
先找类 找到这些类 对吧。
=================欢迎访问www.trufun.net查阅更多资料免费下载UML2建模工具===========
=================欢迎加入qq交流群18052346==========================
そうふく(2) 10:01:44
对talenter(1) 10:02:41
卡部 关联账户?
talenter(1) 10:02:42
为啥?
talenter(1) 10:02:51
我感觉 信用卡是核心
talenter(1) 10:03:02
都和信用卡 建立关系才行
talenter(1) 10:03:54
信用卡是核心 其他的 卡部 和信用卡 1..N 账户--卡 1..1 交易记录--信用卡 N ..1
trufun 10:04:20
你们眼光太厉害了
乐百氏(14048124) 10:02:20
支付工具是信用卡的爸爸类。
trufun 10:02:25
再找 很好
毛*队(3 10:02:47
还有啊??
trufun 10:03:02
有
talenter(1) 10:06:36
银行的部门 作为 卡部的父类
talenter(1) 10:07:06
卡部只是银行部门的一种
trufun 10:07:25
银行的部门 作为 卡部的父类是不对的
talenter(1) 10:07:33
哦 为什么呢?
trufun 10:07:48
不是继承关系,是聚合关系
talenter(1) 10:07:50
有卡部 还有 财务部 核算部 能找个父类吧
talenter(1) 10:07:51
哦
talenter(1) 10:08:12
聚合关系怎么解释? 能帮助说下吗?
talenter(1) 10:09:48
哦 银行的部门 太大了。。 就是提炼个 部门父类。
talenter(1) 10:09:54
部门和 卡部
そうふく(2) 10:12:09
银行的部门为抽象类,卡部继承银行的部门也是可以的啊
talenter(1) 10:12:32
我是这么认为的 可能 刚才描述的不对
そうふく(2) 10:12:52
银行的部门可以分开写继承银行的部门类就可以了啊
talenter(1) 10:13:01
银行的部门 我可能刚才表达的是个集合的概念 所以老师说是 聚合关系
trufun 10:13:11
没有必要抽象,因为本业务不涉及其他部门的事
talenter(1) 10:13:18
哦
そうふく(2) 10:13:18
同时提取公共部门写到抽象类中
talenter(1) 10:13:28
还有?
talenter(1) 10:13:31
继续推敲
talenter(1) 10:14:30
类没了吧?
talenter(1) 10:15:34
没了 是不是找关系了
trufun 10:17:17
银行和卡部是聚合关系
そうふく(2) 10:18:10
还有呢?
trufun 10:18:40
再找找卡部和信用卡的关系
talenter(1) 10:18:39
银行也要抽取 对
talenter(1) 10:18:45
聚合和组合 怎么区分?
trufun 10:19:00
再找找卡部和信用卡的关系
そうふく(2) 10:19:26
组合是一特殊的聚合关系,他的关系强度比聚合更强
そうふく(2) 10:19:38
关联
trufun 10:20:04
不对
Ethan Woo(184912535) 10:21:12
卡不管理信用卡,“管理”表示出一种动作
Ethan Woo(184912535) 10:21:22
具体可表示成依赖
trufun 10:21:35
很好
そうふく(2) 10:23:23
也可以是依赖(信用卡存放到集合类中)
trufun 10:25:46
下面再找找信用卡和账户的关系
talenter(1) 10:28:05
依赖?
trufun 10:28:21
不对
そうふく(2) 10:28:26
关联
talenter(1) 10:28:45
恩 关联
trufun 10:28:57
对,单向还是双向?
talenter(1) 10:29:02
有时候对这些关系 分不太清楚
talenter(1) 10:29:06
单向
trufun 10:29:14
好
talenter(1) 10:29:34
老师,依赖和关联 能举例子说下吗
talenter(1) 10:29:36
好区分
trufun 10:30:00
属性和方法参数的区别
そうふく(2) 10:30:16
关联是has a的关系
talenter(1) 10:37:22
但是 很少这么做
talenter(1) 10:37:26
一直在违背面向对象
trufun 10:39:27
下面再找找信用卡和卡号、余额的关系
talenter(1) 10:40:00
卡号 余额是信用卡的部分内容
trufun 10:40:22
关系?
そうふく(2) 10:40:07
依赖
talenter(1) 10:40:23
组合
trufun 10:40:29
不对
talenter(1) 10:40:35
依赖 组合都不对?
trufun 10:40:50
talenter(1) 10:40:23
组合
回答很对
talenter(1) 10:40:56
哦
talenter(1) 10:58:41
也是组合?
talenter(1) 10:58:59
也是哈
talenter(1) 10:59:22
不过 组合感觉是一种构成
talenter(1) 10:59:31
信用卡 没有记录的话也可以嘛 没交易
trufun 10:59:46
是的
trufun 11:00:01
所以不是组合
talenter(1) 11:00:21
关联呢?
talenter(1) 11:00:26
也不对
talenter(1) 11:00:43
依赖? 一直对这些关系很模糊
talenter(1) 11:00:52
事儿很明白 时而很糊涂啊
trufun 11:01:02
关联是对的,双向还是单向?
trufun 11:02:44
多重性可以为0
talenter(1) 11:03:13
哦
talenter(1) 11:03:18
如何理解多重性?
talenter(1) 11:03:27
既不是单向也不是双向
talenter(1) 11:03:43
我想问下,这个关联的时候考虑单向双向 意义是什么?
talenter(1) 11:03:48
对业务的理解?
trufun 11:04:41
从信用卡可以查到交易记录,从交易记录可以查到使用的信用卡,关系?
talenter(1) 11:05:01
哦
talenter(1) 11:05:06
对
talenter(1) 11:05:13
刚才上午说的
talenter(1) 11:05:17
卡和账号的关系
trufun 11:05:23
从信用卡可以查到交易记录,从交易记录可以查到使用的信用卡,关系?
talenter(1) 11:05:32
双向
trufun 11:05:49
很好
talenter(1) 11:05:55
卡和账号的关系 怎么感觉也有点类似卡和交易记录的关系呢
talenter(1) 11:05:57
这么说的话
talenter(1) 11:06:10
从卡能查到账号 账号应该能查到卡巴
trufun 11:06:11
单向
trufun 11:06:20
很好
talenter(1) 11:06:37
这个互相能查为啥是单向呢
talenter(1) 11:07:01
我开始说单向是因为 账号不主动关联卡
talenter(1) 11:07:11
卡主动关联账号 而已 所以是单向
trufun 11:07:28
说的对
trufun 11:08:20
从卡中查不到账户
talenter(1) 11:08:56
哦 卡只是个账户的载体
talenter(1) 11:09:00
也是
talenter(1) 11:09:04
明白点了 哈哈 谢谢哈
trufun 11:10:11
双向关联,卡和交易记录
talenter(1) 11:11:40
恩
trufun 11:14:43
下面再找找信用卡和支付工具之间的关系
talenter(1) 11:14:55
继承
trufun 11:15:15
很好
talenter(1) 11:16:39
这种好识别点
talenter(1) 11:17:04
请问老师,什么时候使用接口 什么时候使用抽象类 或者父类。
trufun 11:18:38
对外封装方法用接口,扩展性设计用抽象
talenter(1) 11:19:42
哦 好的 谢谢
trufun 11:24:48
最后一个问题,如果给信用卡设计基类,应该为什么?为什么?
talenter(1) 11:25:20
想想
talenter(1) 11:30:40
恩
talenter(1) 11:30:54
信用卡有多种
talenter(1) 11:30:59
比如 金卡
talenter(1) 11:31:03
联名信用卡
talenter(1) 11:31:21
有一些共同点也有些不同点 但是共同点多
天意@来生缘(5) 11:31:26
信用卡应该设计成抽象类吧
talenter(1) 11:31:26
所以考虑设计基类
trufun 11:31:42
这是从卡角度抽象,给一个基类
talenter(1) 11:31:56
从扩展角度的话
talenter(1) 11:32:06
可能会发行 不同的信用卡
talenter(1) 11:32:28
考虑到信用卡 最基本的就是 有卡号 余额 持卡人信息等等。。
trufun 11:36:03
乐百氏(14048124) 11:32:52
银行卡
乐百氏(14048124) 11:33:08
泛化关系
talenter(1) 11:37:20
哦
talenter(1) 11:37:39
继承关系也行吧
trufun
我的观点:如果你开发的系统侧重于信用卡中信用,可以设计一个信贷基类,如果你开发的系统侧重于卡的管理,可以设计有价证件基类,仅供参考
=================欢迎访问www.trufun.net查阅更多资料免费下载UML2建模工具===========
=================欢迎加入qq交流群18052346==========================