zoukankan      html  css  js  c++  java
  • 泛化、聚合、组合、依赖

    泛化(Genaralization)

      在上图中,空心的三角表示继承关系(类继承),在UML的术语中,这种关系被称为泛化(Generation)。Person(人)是基类,Teacher(教师),Student(学生),Gust(来宾)是子类。

      若在逻辑上B是A的“一种”,并且A的所有功能和属性对B而言都有意义,则允许B继承A的功能和属性。

      例如,教师是人,Teacher是Person的“一种”(a Kind of)。那么类Teacher可以从类Person派生(继承)。

      如果A是基类,B是A的派生类,那么B将继承A的数据和函数。

      如果类A与类B毫不相干,不可以为了使B的功能多些而让B继承A的功能和属性。

    聚合(组合):

      若在逻辑上A是B的'一部分"(a part of),则不允许B从A派生,而是要用A和其他东西组合出B。

      聚合的类型分为无,共享(聚合),复合(组合)三类。

    聚合(aggregation):

      聚合的意义表示has-a关系。聚合是一种相对松散的关系,聚合类B不需要对聚合A类负责。

    组合(composition):

      更为坚固的关系---组合(composition)(聚合类型为复合)。组合表示的关系也是has-a,不过这里,A的生命周期受B的控制。

    依赖(Dependency):

      如果A被修改,那么类B会受到影响。

  • 相关阅读:
    leetcode44:wildcard
    Python实现决策树
    PCA实现
    js触摸事件
    js中的getBoundingClientRect()函数
    Java中timer的schedule()和schedualAtFixedRate()函数的区别
    nodejs中的exports和module.exports
    为什么MySQL数据库要用B+树存储索引
    浅谈微服务中的熔断,限流,降级
    缓存击穿、缓存穿透和缓存雪崩
  • 原文地址:https://www.cnblogs.com/QoQian/p/4833640.html
Copyright © 2011-2022 走看看