zoukankan      html  css  js  c++  java
  • 盘点UML中的四种关系

             生活中,我们既是独立的个体,又通过联系形成各种关系,比方说:朋友。恋人。父子,同学……于是乎,出现了神乎其神的六人定律

    那么在UML中又存在什么样的关系呢?以下我们来梳理一下。


    关联(Association)
             描写叙述了两个或多个类之间的结构性关系。
             图示:直线或直线+箭头  
         双向关联:
             指两方都知道对方的存在。都能够调用对方的公共属性和方法。
             箭头及指向:双向的关联能够有两个箭头或者没有箭头
             例1:公司和人
            
             将来在Person类中会有属性名为employer,类型为Company ;在Company类中会有一个属性为Employee。类型为Person
             例2:教师和学生
             
          单向关联:
              指一方能够调用对方的属性和方法。


              箭头及指向:单向关联是带普通箭头的实心线,指向被拥有者。


              例3:学生和某课程
             
               一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生
            自身关联(反身关联):
               自己引用自己,带着一个自己的引用。就是在自己的内部有着一个自身的引用。
            聚合关系:
               是总体与部分的关系,且部分能够离开总体而单独存在。


               箭头及指向:带空心菱形的实心线,菱形指向总体
               例4:车和轮胎是总体和部分的关系。轮胎离开车仍然能够存在
              
             组合关系:
                 是总体与部分的关系。但部分不能离开总体而单独存在。
                 箭头及指向:带实心菱形的实线,菱形指向总体
                 例5:公司和部门是总体和部分的关系。没有公司就不存在部门
                
    依赖(Dependency)
                 依赖关系是一种使用关系。特定事物的改变有可能会影响到使用该事物的事物,反之不成立。通常情况下。依赖关系体如今某个类的方法使用还有一个类作为參数
                 图示:虚线+箭头
                 例6:动物与氧气和水的关系
                 
    泛化(Generalization)
                  泛化关系是一种继承关系,是一种特殊/一般关系,特殊元素(子元素)的对象可替代一般元素(父元素)的对象。用这样的方法。子元素共享了父元素的结构和行为。
                  图示:实线+空心三角
                  例7:动物与猎豹和狼的关系
                  
    实现(Realization):
                  实现是类元之间的语义关系。在该关系中一个类元描写叙述了还有一个类元保证实现的契约。

    一个类实现了一个接口。


                  图示:虚线+空心三角(箭头指向接口)
                  例8:遥控器类实现了电视剧的换台接口
                 
             

                   各种关系的强弱顺序:
                   泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

                   用一个通俗易懂的UML图来回想一下这几种关系

                  
     
              如今对UML的学习仅仅是刚刚開始。对知识的理解还不够充分,假设有错误的地方,还望大牛可以指点一二,万分感谢!


  • 相关阅读:
    【Java】《Java程序设计基础教程》第三章学习
    【Python】编程小白的第一本python(最基本的魔法函数)
    【Python】编程小白的第一本python(基础中的基础)
    bootstrap中的col-xs-*,col-sm-*,col-md-* 关系
    java基础面试题总结
    人生中第一次面试(阿里一面)
    阿里云服务器ip:端口号无法访问
    redis基本指令
    linux基本指令
    centos安装redis
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/6820705.html
Copyright © 2011-2022 走看看