zoukankan      html  css  js  c++  java
  • [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
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 相关阅读:
    关于雷达(Radar)信道
    关于High CPU及基本排查
    UCS内存问题排查
    ASA-ACL类型
    思科室外AP无法注册到WLC
    WLC-Right to Use Licensing
    无线连接网络-FAST SSID Change
    ASA升级
    ASA密码恢复流程
    Mobility Express部署外部镜像服务器
  • 原文地址:https://www.cnblogs.com/xiaofeiIDO/p/6154925.html
Copyright © 2011-2022 走看看