uml中的那些关系

时间:2022-08-24 11:35:04

       我们都知道,uml是一种统一建模语言,它的结构很简单,现在我们就把它的四种关系说一说。所谓关系,就是事物间的关系。    uml中的那些关系

                                                       

一:依赖关系(dependency)

    对于俩个对象x和y,如果对象x发生了变化,可能会引起对另一个对象y发生变化,则称y依赖于x,在uml中,依赖关系用一条带有箭头的虚线表示。箭头指向被依赖方。


    举一个例子吧,客户以一种方式依赖于提供者。在实际的建模中,类元之间的依赖关系表示某一类元以某种方式依赖于其他类元。从语义上来理解,关联、实现和泛化关系都是依赖关系,但是因为他们有更加特别的语义,就被分离出来啦。我们知道当遥控器改变的时候,电视频道也会随之而发生变化,如下图所示:


                    uml中的那些关系
   
    4种基本的依赖关系类型分别是:使用依赖、抽象依赖、授权依赖、绑定依赖,他们各有特点,我们以客户使用者和使用提供者来说,其中使用依赖就是就是客户使用提供者提供的服务以实现他的行为。抽象依赖是依赖于不同层次上的事物,授权依赖就是提供者可以规定一定的客户的权利来对提供者控制和限制。绑定依赖就是绑定模版以创建新的模型元


二:泛化关系(generalization)


    首先我们知道泛化就是一般元素和特殊元素之间的关系,也就是父类和子类的关系,子类继承父类的属性和方法,当然子类在继承的基础上还会有新的属性和方法。泛化关系描述了类之间的“is a kind of”的关系。
    在图形上,泛化用从子类指向父类的空心三角形箭头来表示,多个泛化关系可以用箭头线来表示树形来表示,如图所示:
                      uml中的那些关系

三:实现关系(realization)


     实现关系将一种模型元素和另一种模型元素连接起来,其中接口只是行为的说明而不是结构或者实现。也即是不继承结构但是继承行为。一个接口可以被多个类或者组件实现,一个类或组件也可以有多个接口。
        
    可以在两种情况下实现该关系,第一是在接口和实现该接口的类间,第二是在用例以及实现该用类的协作间。他用一个带空心三角形的虚线箭头来表示,箭头方向指向接口。
  
    例如,打字员和计算机键盘的关系,即使计算机键盘帮助打字员实现了他的工作的功能,所以,可以用下面的图表示:
                uml中的那些关系
     还有一个很省略的画法,也就是这条实现的线可以用的带圆圈的线来表示。


四:关联关系(association)

    
    关联关系描述了一组具有共同的结构特征和行为特征等的链接,他是一种结构关系,假如俩个事物之间存在链接,则事物的类间存在关联关系。如学院、学生、大学存在链接关系,则他们之间可以建立关联关系。


    关联关系用一条实线表示,除了基本形式外,还有名称、角色、多重性和聚合四种应用来修饰关联。其中名称就是关系的名称,表示该关系的性质,同时可以在名称的前缀或者是后缀添加一个指引阅读方向的实心三角形箭头。角色就是在该类中扮演的角色,也可以是职责等,如学生扮演的是学习着的角色,老师扮演的额是教学者的角色,多重性的具体语法有六种,就不列出啦.


    在这里区别一下聚合关系和组成关系,还有关联关系的导航性。
    聚合关系是便是类间整体和部分的关系,关联关系中描述了一个极大的事物,聚合关系是里面的很小的一部分,即整体对象拥有的部分对象。在图形中用空心的菱形头的实线表示。
    组成关系的关联性强,也是说明了整体和部分的关系,但是部分不能失去整体而单独存在。在图形中用实心得菱形头表示。
   
                   uml中的那些关系
                                                  

     导航性表示从源头的对象到目标的过程,有单向关联和双向关联之分。目的就是降低类间的耦合度,例如下面的图就是单向关联的模型:


                          uml中的那些关系          
                             

      uml中,四种关系始终贯彻。但是我也很想说,看视频容易,画图难,EA软件几乎都是英文,对于不懂英文的我,画图更难啊!