盘点UML中的四种关系

         生活中,我们既是独立的个体,又通过联系形成各种关系,比如说:朋友,恋人,父子,同学……于是乎,出现了神乎其神的六人定律。那么在UML中又存在什么样的关系呢?下面我们来梳理一下。
关联(Association)
         描述了两个或多个类之间的结构性关系。
         图示:直线或直线+箭头  
     双向关联:
         指双方都知道对方的存在,都可以调用对方的公共属性和方法。
         箭头及指向:双向的关联可以有两个箭头或者没有箭头
         例1:公司和人
        
         将来在Person类中会有属性名为employer,类型为Company ;在Company类中会有一个属性为Employee,类型为Person
         例2:教师和学生
         
      单向关联:
          指一方可以调用对方的属性和方法。
          箭头及指向:单向关联是带普通箭头的实心线,指向被拥有者。
          例3:学生和某课程
         
           一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生
        自身关联(反身关联):
           自己引用自己,带着一个自己的引用。就是在自己的内部有着一个自身的引用。
        聚合关系:
           是整体与部分的关系,且部分可以离开整体而单独存在。
           箭头及指向:带空心菱形的实心线,菱形指向整体
           例4:车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在
          
         组合关系:
             是整体与部分的关系,但部分不能离开整体而单独存在。
             箭头及指向:带实心菱形的实线,菱形指向整体
             例5:公司和部门是整体和部分的关系,没有公司就不存在部门
            
依赖(Dependency)
             依赖关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的事物,反之不成立。通常情况下,依赖关系体现在某个类的方法使用另一个类作为参数
             图示:虚线+箭头
             例6:动物与氧气和水的关系
             
泛化(Generalization)
              泛化关系是一种继承关系,是一种特殊/一般关系,特殊元素(子元素)的对象可替代一般元素(父元素)的对象。用这种方法,子元素共享了父元素的结构和行为。
              图示:实线+空心三角
              例7:动物与猎豹和狼的关系
              
实现(Realization):
              实现是类元之间的语义关系,在该关系中一个类元描述了另一个类元保证实现的契约。一个类实现了一个接口。
              图示:虚线+空心三角(箭头指向接口)
              例8:遥控器类实现了电视剧的换台接口
             
         

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

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

              
 
          现在对UML的学习只是刚刚开始,对知识的理解还不够充分,如果有错误的地方,还望大牛能够指点一二,万分感谢!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 27
    评论
UML(统一建模语言),有几种见的关系类型,它们用于描述类与类之间、对象与对象之间的关联和交互。以下是UML的几种关系类型: 1. 关联(Association):表示类之间的静态关系,描述了对象之间的连接。关联可以是双向的,也可以是单向的,可以是一对一、一对多或多对多的关系。 2. 聚合(Aggregation):表示整体与部分之间的关系,是一种弱关联关系。聚合关系,整体对象可以包含部分对象,但部分对象可以独立存在。 3. 组合(Composition):也表示整体与部分之间的关系,但是组合关系,整体对象负责创建和销毁部分对象,并且部分对象的生命周期与整体对象相关联。 4. 依赖(Dependency):表示一个类依赖于另一个类的定义或实现。当一个类的变化会影响到另一个类时,就存在依赖关系。 5. 继承(Inheritance):表示一个类继承另一个类的属性和方法。继承关系,子类可以继承父类的特性,并且可以添加自己的特性。 6. 实现(Realization):表示一个类实现了一个接口或抽象类的定义。实现关系,类需要实现接口或抽象类定义的方法。 7. 依赖关系(Dependency):表示一个类使用了另一个类的对象作为参数、局部变量或返回值。 8. 信号(Signal):表示对象之间的异步通信。 以上是UML的几种常见关系类型,它们用于描述类与类之间的关联和交互。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值