【UML学习】类和关系

前言

         UML中的类与关系也是其重要的组成部分。与后面要讲的类图也有着密切的关系。

主要内容

      类

           类是任何面向对象系统中最重要的构造块。类是对一组具有相同属性,操作,关系和语义的对象的描述。简言之,类是对客观事物的抽象。
      类在UML中由一个专门的图符来表达。是分成3个分区域的矩形。顶端的分隔区为类的名字,中间的分隔区存放类的属性,属性的类型,和值。第三个分隔区放操作,操作的参数表和返回类型。
          

      关系

       抽象过程中,很少有类是独立存在的,大多数的类以某些方式彼此协作。所以,在进行建模的时候,不仅要抽象出形成系统词汇的事物,还必须对这些事物间的关系进行建模。
       最常用的四种:依赖(Dependency)泛化(Generalition)关联(Associate)实现(Realizaion)
       1.依赖 依赖是两个模型元素间的语义联系,依赖双方某一个模型元素的变化必须影响到另一个模型元素。
       依赖关系举例图
       


        2.泛化是一般事物称为超类或父类,和该事物的较为特殊的种类称为子类之间的关系,子类继承父类的属性和操作,除此之外通常子类还添加了新的属性和操作,或者修改        了父类的某些操作。
       简单来说,泛化关系描述了类之间的“is a kind of”的关系。
       泛化关系图
       
       泛化有两个用途,多态和继承。
       多态示例。
       Canvas维护了shape的集合。square 和circle为shape的两种形态。它们两个的值是合法的。
       
          多重继承
          
          personalaccount同时继承了account 和personal的属性和操作。
     
          下 图的例子是一辆水路两栖的汽车艇,来自于两个父类,汽车,和游艇。汽车和游艇又属于交通工具。
            
   
       


       3.关联
      关联是描述一组具有相同结构特征,行为特征,关系和语义的链接。如果两个事物存在链接,这些事物的类间必然存在着关联关系,因为链接是关联的实例,就像对象是类的实例一样。
      应用于关联的4种修饰,名称,角色,多重性,聚合。
    (1)关联可以有一个名称,用于描述该关系的性质。关联名称应该是动词短语,因为他表明源对象正在目标对象上执行动作。
     名称也可以前缀或后缀一个指引阅读方向的实心三角形箭头,为的是消除名称含义上可能存在的歧义。
     
   (2)角色。当一个类处于关联的某一段时,该类就在这个关系中扮演一个特定的角色。具体来说,角色就是关联关系中一个类对另一个类所表现的职责。
     learner和teacher就是两个类的角色。
     
   (3)多重性。约束是UML三大扩展机制之一。多重性是其中的第一种约束,也是目前使用最广泛的约束。
      下图的意思就表示为,1或更多学生可以属于很多大学。

    
                                                                                                                                                         
      
   (4)聚合关系
    聚合关系是一种特殊的关联关系,它表示类间的关系式整体与部分的关系。关联关系中一个类描述了一个较大的事物,它由较小的事物组成。就像火车和引擎。UML中聚合关系用空心菱形表示。
     
   (5)组合关系
    聚合表示部分与整体关系的关联,组成是更强形式的关联。整体有管理部分的特有的职责,并且它们有一致的生命期。组成是另一种形态的聚合,它在聚合的基础上添加了更为精准的语义。就像book 由page组成,人体由arms ,body,head组成。
    UML中组合关系由实心菱形组成。
    
  
   (6)导航性。导航性表示可以从源累的任何对象到目标类的一个或多个对象遍历。只在一个方向上可以导航的关联称为单向关联,用一条带箭头的实线表示。两个方向上可以导航的关联称为双向关联,用一条没有箭头的实线表示。


     4.实现
    实现是规格说明和其实现间的关系。它表示不继承结构而只继承行为。大多数情况下,实现关系用来规定接口和实现接口。UML中用带空心的三角形箭头来表示实现关系。箭头方向指向接口。
   计算机键盘保证自己的部分行为能够“实现”打字员的行为,它们之间存在实现关系。
    
   
  

小结

     以上的关联中要注意,聚合和组合的区分。组合的关系更为强烈
     了解类,和关系,对我们后面了解类图,和UML中的其他图都会有很好的帮助。
     





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 56
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值