zoukankan      html  css  js  c++  java
  • UML中类图的符号解释

    在UML的定义中,描写叙述类和对象之间的关系,包含下面几种方式:依赖(Dependency)、关联(Association)、聚合(Aggregation)、组合(Composition)、泛化(Generalization)和实现(Realization)。现分别说明例如以下:

    1.依赖(Dependency)

    在uml中,“依赖”表示为带箭头的虚线,箭头指向被依赖的元素。是类与类之间的连接,表示为一个类依赖于还有一个类的定义,当中一个类的变化将影响还有一个类。依赖总是单向的,不应该存在双向依赖,这一点要特别注意。更详细的说,依赖能够理解为:一个类(A)对不在事实上例作用域内的还有一个类或对象(B)的不论什么类型的引用。大致包括下面几种情况:

    (1)局部变量;

    (2)方法的參数;

    (3)静态方法的调用;

          

    以下是依赖关系的uml示意图:

     

    2.关联(Association)

    在uml中,关联表示为带箭头的实线。关联能够是单向的,也能够是双向的。假设是双向关联,则能够表示为双向箭头,或者没有箭头。一般来说,系统设计应表现为单向关联,这样利于维护。一个关联能够附加“多重性”的修饰符,表示两个类之间的数量关系。关联能够理解为:一个类(A)持有还有一个类或对象(B。详细表现为:

    (1)成员变量

    以下是关联关系的uml演示样例图:


    上面的关联表示,一个Employee持有(has)0个或多个TimeCard。

    3.聚合(Aggregation)

    在uml中,聚合关系表示为空心的菱形箭头线。聚合关系是关联关系的一种,表示一种“强”关联关系。对照与关联关系,两个类是处于同一个层次的。而聚合关系,两个类处于不同的层次,强调了一个总体/局部的关系。比如一辆汽车有一个引擎,4个轮胎。

    在聚合关系中,体现了一种“弱拥有”的概念。也就是说,对象A拥有对象B,但B并非A的组成部分。更详细的表现为,假设AB聚合而成,则A包括B的全局对象,但B对象能够不在A对象创建时创建。回到前面的样例,汽车对象由轮胎对象聚合而成,可是轮胎对象的生命期并不受汽车对象的左右。当汽车对象销毁时,轮胎对象也能够单独存在!

    以下是聚合关系的uml示意图:

    从代码上看,聚合和关联没有不论什么差别。这里只体现一种概念上的含义。在创建ClassA的时候,不一定须要同一时候创建ClassB的实例。

    4.组合(Composition)

    在uml中,组合关系表示为实心菱形箭头线。组合也叫合成。合成关系强调了比聚合关系更加强的总体/部分的关联,比如人和四肢。和聚合关系所不同的是,在组合关系中,尽管局部不一定随着总体的销毁而销毁,但总体要么负责保持局部的存活状态,要么负责将其销毁。也就是说,组合关系中,局部的存活期一定是小于,最多是等于总体的存活期的。

    以下是组合关系的uml演示样例图:

     

    5.泛化(Generalization)与实现(Realization)

    泛化也就是通常所谓的继承关系,在uml中表示为一个带空心三角的实线。表示为is-a的关系,是对象间耦合度最大的一种关系,子类继承父类的全部细节,并能够在此基础上加入自己的特性。

    以下是泛化关系的uml图:

    所谓实现就是对接口的定义实现,非常easy。表现为带箭头的虚线。以下的实现的uml图:

  • 相关阅读:
    Element没更新了?Element没更新,基于El的扩展库更新
    MVC与Validate验证提示的样式修改
    封装两个简单的Jquery组件
    VS20XX-Add-In插件开发
    CentOS7 配置环境
    PHP Laravel 5.4 环境搭建
    【设计经验】5、Verilog对数据进行四舍五入(round)与饱和(saturation)截位
    【设计经验】4、SERDES关键技术总结
    【高速接口-RapidIO】6、Xilinx RapidIO核仿真与包时序分析
    【高速接口-RapidIO】5、Xilinx RapidIO核例子工程源码分析
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4298643.html
Copyright © 2011-2022 走看看