[python] 类组合与聚合关系

类之间有多种关系,请大家看维基百科,类别图 下面主要介绍聚合(Aggregation)以及组合(Composition)。

聚合(aggregation):指的是整体与部分的关系。通常在定义一个整体类后,再去分析这个整体类的组成结构。从而找出一些组成类,该整体类和组成类之间就形成了聚合关系。需求描述中“包含”、“组成”、“分为…部分”等词常意味着聚合关系。

组合(composition):也表示类之间整体和部分的关系,但是组合关系中部分和整体具有统一的生存期。一旦整体对象不存在,部分对象也将不存在。部分对象与整体对象之间具有共生死的关系。

类组合,Computer实例对象不存在了,内部组合的Cpu实例也不存在。

聚合Computer实例对象不存在了,从初始化方法传入的Cpu实例不受Computer实例对象存在不存在的影响。

请看下面的代码。

#! /usr/bin/env python
# coding:utf-8

'''
类对象组合关系
'''

class Cpu(object):

    def __init__(self):
        self.type = '286'


class Computer(object):

    def __init__(self):
        self.cpu = Cpu()  # 包含CPu类的实例对象

    def __del__(self):
        print ("Cpu by by!")

old_computer = Computer()
del old_computer
#! /usr/bin/env python
# coding:utf-8

'''
类对象聚合关系
'''


class Cpu(object):

    def __init__(self):
        self.type = '286'


class Computer(object):

    def __init__(self, cpu):
        self.cpu = cpu  # 有一个CPu类的实例对象

    def __del__(self):
        print ("没有权力和Cpu by by!")

old_cpu = Cpu()
old_computer = Computer(old_cpu)
del old_computer

作者:黄哥
链接:https://zhuanlan.zhihu.com/p/21945722
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

转载于:https://www.cnblogs.com/xiaofeiIDO/p/6154925.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值