zoukankan      html  css  js  c++  java
  • UML——类图

    类图是UML中用的最多的图 有此可知类图是非常重要的

    类图 英文是 Class Diagram 形状很简单 是由一个矩形、两个矩形或三个矩形构成的 

    如下图:


          

    如图中所示 最上面一栏是类名 就是这个类的名字 第二栏是类的属性(一个类可以有一个或多个属性 当然还有些类没有属性)  第三栏就是类的方法也叫类的操作 就是说这个类可以做什么(和类的属性一样类的方法可以有一个或多个 也可以一个也没有)


    类与类之间的关系:

    上面只说了一个类的构成 我们写程序的时候不可能只有一个类 通常都会有好多类 如何处理好这些类之间的关系是一种很重要的事 

    下面让我们看一下类与类之间有什么关系:

    关联  关联分为组合跟聚合

    聚合(Aggregation):直接说组合的定义我感觉不是很容易理解 还是举个例子吧 我个人比较喜欢足球 所以就举个跟足球有关的例子吧

    其实球员跟俱乐部之间的关系就是一种聚合关系 俱乐部由球员组成 球员属于俱乐部 俱乐部可以买卖球员 而球员也可以选择自己向往的俱乐部 他们之间没有什么必然的关系 而组合就不同了

    聚合用实心箭头末尾加上空心的菱形来表示 空心菱形也可以理解为关系弱


    组合(Composition):上图皇马跟C罗和卡卡的关系就是聚合关系 他们之间没有什么必然的关系 C罗和卡卡无论谁转会都不会让皇马有本质的改变 而有组合关系的类他们之间的关系是非常紧密的 C罗与C罗自己的脚、自己的手之间的关系就是这种组合关系

    组合用实心箭头加上末尾的实心菱形表示 实心菱形可以理解为关系强


    C罗的手跟脚相比他跟皇马的关系显然紧密了许多 如果C罗没有了脚 或没有了手 那么对他的影响是巨大的 对他来说是本质上的影响


    还有一个关系就是泛化/继承(Generalize) 泛化和继承其实是一个逆过程 泛化就是有子类抽象出一个父类 而继承就是由父类具体化一个子类 例如足球比联赛跟什么西甲 意甲 英超之间就是泛化/继承的关系

    泛化/继承用空心实线箭头表示


    最后一种关系就是依赖(Dependency) 所谓依赖顾名思义 就是一个受另一个类的影响与制约 这就好比足球赛跟比赛规则之间的关系 一场足球赛要按照比赛规则才可以顺利的进行 而且比赛规则的改变会影响到比赛

    以上就是类图中的一些东西 我的理解很肤浅 有说的不对的地方 希望大家多多指教

  • 相关阅读:
    Hologres如何支持亿级用户UV计算
    飞猪基于 Serverless 的云+端实践与思考
    高德打车构建可观测性系统实践
    程序员写好技术文章的几点小技巧
    配置审计(Config)变配报警设置
    进入中国内地第31年的麦当劳 ,为什么还能不断吸引新消费人群?
    OceanBase再破纪录!核心成员陈萌萌:坚持HTAP就是坚持我们做数据库的初心
    找出有序数组中缺失的数字
    删除值重复的结点
    想交链表----若有缘 必相见
  • 原文地址:https://www.cnblogs.com/liushuijinger/p/2830273.html
Copyright © 2011-2022 走看看