zoukankan      html  css  js  c++  java
  • [设计模式] 读懂UML图

    类之间关系(由强到弱)

    • realize(继承):三角+实线(指向类),继承类(SUV是一种汽车)
    • generalization(实现):三角+虚线(指向接口),实现接口(汽车是一种车)
    • composition(组合):实菱形+实线(指向个体),强依赖(汽车没了,发动机就没了),特殊的聚合,构造函数
    • aggregation(聚合):空菱形+实线(指向个体),非强依赖(班级没了,学生还在),特殊的关联,一对多关系,一个对象拥有一组其他对象,并扮演容器或集合的角色
    • association(关联):箭头+实线(指向被依赖者),静态,天然的联系(学生带着身份证),如一个类对象是另一个类的成员变量(意味着后者总能访问前者)
    • dependency(依赖):箭头+虚线(指向被依赖者),动态,运行时的联系(学生只在上学时用自行车),修改一个类的定义可能会造成另一个类的变化,如一个类是另一个类方法的参数

     

    (有的箭头没打上,以下图为准)

    总结 

    • 可分为三组,三角--菱形--箭头,关联由强到弱;每组中采用实/虚,实心/空心表示关联强弱
    • 图形所在的一方为被依赖者
    • 泛化、实现是is-a,聚合、组合是has-a
    • 聚合、组合的区别在于生命周期不同,聚合是部分的生命周期可以超过整体(弱关联),组合是部分和整体同生死(强关联)
    • 代码实现:聚合--部分是整体的成员变量;组合--部分在整体的构造函数中创建,实现同生死
    • 每项分两个格,填写属性和方法,-表示私有,+表示公有

    参考

    设计模式

    https://design-patterns.readthedocs.io/zh_CN/latest/read_uml.html

    代码中的聚合&组合

    https://www.2cto.com/kf/201410/347867.html

  • 相关阅读:
    Bye sent_keys
    快速获取Jenkins上build
    快速搞定selenium grid分布式
    python 图形界面开发
    [分享] 自动化测试与持续集成方案-- UI 检查
    hua ge ju hao
    暴力 C++
    简单排序(java)
    记codeforces两题
    hdu 1874, dijkstra
  • 原文地址:https://www.cnblogs.com/cxc1357/p/10887327.html
Copyright © 2011-2022 走看看