zoukankan      html  css  js  c++  java
  • UML类图学习

      学习设计模式的时候每个模式都会有一个UML类图,一般这些类图都还是比较容易看懂的,但是当自己设计UMl类图的时候,就头大了。dependency,composition,aggregation,association有什么区别?还有那些0……*,0……1,1……*都是什么意思?让我们一起来学习一下。所有UML类图都使用PowerDesigner绘制。

    一般化、泛化——Generalization

      用在两个类或者两个接口之间就是继承,类和接口之间就是实现,箭头指向被继承或被实现者

    依赖——Dependency

      临时的、偶然的关系,可以为单向或者双向,代码表现为一个类或者接口作为另一个类或接口的参数,箭头指向作为参数的类

      

    关联——Association

      类与类、类与接口之间的持久关系,双方地位平等。可以为单向或者双向,代码表现为被关联项作为关联项的属性,或者被引用项是一个全局变量。箭头指向被引用项

      

    聚合——Aggregation

      类与类、类与接口之间的部分与整体关系,但部分与整体是可分离的,即has-a的关系。例如:家庭——成员之间的关系,部分可以独立于整体生存,部分可以属于多个对象。代码表现和关联一样,只能从语义区分。箭头指向部分

      

    组合——Composition

      也是部分与整体的关系,但是两者不可分离,拥有相同的生命周期,部分不可以独立于整体生存,即contains-a关系。例如:人体——心脏之间的关系。箭头指向部分

      

    其他

      箭头

      

      关系所表现的强弱程度依次为:组合>聚合>关联>依赖;

      多重性关系

      多重性关联关系又称为重数性(Multiplicity)关联关系,表示两个关联对象在数量上的对应关系。

    表示方式
    多重性说明
    1..1
    表示另一个类的一个对象只与该类的一个对象有关系
    0..*
    表示另一个类的一个对象与该类的零个或多个对象有关系
    1..*
    表示另一个类的一个对象与该类的一个或多个对象有关系
    0..1
    表示另一个类的一个对象没有或只与该类的一个对象有关系
    m..n
    表示另一个类的一个对象与该类最少m,最多n个对象有关系 (m≤n)

      下图表示一个公司拥有1到n个员工,一个人属于0或1个公司

      

      

  • 相关阅读:
    Revit 二次开发 几何
    Revit 二次开发 元素过滤练习
    Revit 二次开发 图元过滤
    Revit 二次开发 图元与参数
    扩展Revit的方式
    Revit API二次开发入门,完整学习流程,附源码
    Revit 二次开发学习视频
    在lldb调试中调用c++函数
    在lldb调试中调用c++函数
    lldb调试使用python脚本问题总结
  • 原文地址:https://www.cnblogs.com/castdream/p/4818515.html
Copyright © 2011-2022 走看看