【1.104】关联,聚合,组合关系
关联,聚合,组合关系
其实这三个在代码上写法是⼀样的. 但是, 从含义上是不⼀样的.
1. 关联关系. 两种事物必须是互相关联的.
但是在某些特殊情况下是可以更改和更换的.
2. 聚合关系. 属于关联关系中的⼀种特例. 侧重点是xxx和xxx聚合成xxx.
各⾃有各⾃的生命周期.
比如电脑. 电脑⾥有CPU, 硬盘, 内存等等.
电脑挂了. CPU还是好的. 还是完整的个体
3. 组合关系. 属于关联关系中的⼀种特例.
写法上差不多. 组合关系比聚合还要紧密.
比如⼈的⼤脑, ⼼脏, 各个器官. 这些器官组合成⼀个⼈.
这时. ⼈如果挂了. 其他的东⻄也跟着挂了
先看关联关系:
这个最简单. 也是最常⽤的⼀种关系.
比如. ⼤家都有男女朋友. 男⼈关联着女朋友. 女⼈关联着男朋友.
这种关系可以是互相的, 也可以是单⽅⾯的.
# 这个最简单. 也是最常⽤的⼀种关系. # 比如. ⼤家都有男女朋友. 男⼈关联着女朋友. 女⼈关联着男朋友. # 这种关系可以是互相的, 也可以是单⽅⾯的. class Boy: def __init__(self,name,girlFriend=None): self.name = name self.girlFriend = girlFriend def have_a_diner(self): if self.girlFriend: print('%s 和 %s 一起晚饭'%(self.name,self.girlFriend.name)) else: print('单身狗,吃什么饭') class Girl: def __init__(self,name): self.name = name b = Boy('日天') g = Girl('如花') b.have_a_diner() # 此时是单身狗 单身狗,吃什么饭 # 突然有一天,日天牛逼了,找到女朋友 名字叫 如花 b.girlFriend = g b.have_a_diner() # 日天 和 如花 一起晚饭 # 结果嫌他有点娘,不硬,分了 b.girlFriend = None b.have_a_diner() #单身狗,吃什么饭
注意. 此时Boy和Girl两个类之间就是关联关系. 两个类的对象紧密练习着.
其中⼀个没有了. 另⼀个就孤单的不得了. 关联关系, 其实就是 我需要你. 你也属于我. 这就是关联关系.
像这样的关系有很多很多.
比如. 学校和老师之间的关系.
浙公网安备 33010602011771号