UML应用讨论——类以及类之间的关系3

64 篇文章 0 订阅
35 篇文章 0 订阅
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

先找类  找到这些类 对吧。

=================欢迎访问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==========================



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值