UML之类图

     类图是最常用的UML图,显示出类、接口以及它们之间的静态结构和关系;它用于描述系统的结构化设计。 

一、类图最基本的元素是类或者接口。    

    1. 类(Class)  

    一般包含3个组成部分。第一个是类名;第二个是属性(attributes);第三个是该类提供的方法( 类的性质可以放在第四部分;如果类中含有内部类,则会出现第五个组成部分)。

    类名部分是不能省略的,其他组成部分可以省略。 

    类名书写规范:正体字说明类是可被实例化的,斜体字说明类为抽象类。 

    属性和方法书写规范:修饰符 [描述信息] 属性、方法名称 [参数] [:返回类型|类型] 

    属性和方法之前可附加的可见性修饰符:

        加号(+)表示public;减号(-)表示private;#号表示protected;

        省略这些修饰符表示具有package(包)级别的可见性。

        如果属性或方法具有下划线,则说明它是静态的。

         类的性质是由一个属性、一个赋值方法和一个取值方法组成。书写方式和方法类似。


    2. 包(Package  

    包是一种常规用途的组合机制。UML中的一个包直接对应于Java中的一个包。在Java中,一个包可能含有其他包、类或者同时含有这两者。进行建模时,通常使用逻辑性的包,用于对模型进行组织;使用物理性的包,用于转换成系统中的Java包。每个包的名称对这个包进行了惟一性的标识。


    3. 接口(Interface 

    接口是一系列操作的集合,它指定了一个类所提供的服务。它直接对应于Java中的一个接口类型。接口的表示有大概两种方式。具体画法见下例


二、 关系 

    常见的关系有:泛化关系、实现关系、聚合关系、组合关系和依赖关系。请注意不同关系在图中连线表示的不同。  

    1、泛化关系Generalization  

    泛化关系表示类与类、接口与接口之间的继承关系。关系中的箭头由子类指向父类。

    在UML中多重继承和单继承的画法是不同的,先来看看多重继承的类图:


    下面的是java中单继承关系类图的画法:

    2实现关系(Realization) 

    实关系指定两个实体之间的一个合同。换言之,一个实体定义一个合同,而另一个实体保证履行该合同。关系中的箭头由实现接口的类指向被实现的接口。 

    表示方法一:(在Rose2003 下实现如下,连接线没有箭头,因为方向显而易见)


     表示方法二: 


    3关联关系(Association) 

    关联表示类与类之间的连接,是长期的关系。在关联中,一个类保存对另一个类实例的引用,并在需要的时候调用这个实例的方法。它使一个类的可见属性和方法被另一个类使用。关联可以是双向或者单向的。双向的关联箭头是可选的,单向的箭头指向遍历或者查询的方向。

    在Java中,关联使用实例变量来实现。在关联关系中可以使用附加的基数来说明类之间对应的个数。  


    表现在图中为:(注意箭头的画法)


    注意:一个关联关系往往是聚合关系或者是合成关系。  

       3.1聚合关系(Aggregation) 

       聚合是关联的一种形式,代表两个类之间的整体/局部关系。聚合暗示着整体在概念上处于比局部更高的一个级别,而关联暗示两个类在概念上位于相同的级别。在Java中,聚合也是使用实例变量来实现的。 

关联和聚合的区别纯粹是概念上的,在Java语法上分辨不出来的。聚合还暗示着实例图中不存在回路。换言之,只能是一种单向关系。


       3.2、组合关系(Composition) 

       组合是聚合的一种特殊形式,暗示“局部”在“整体”内部的生存期职责。组合关系是不能共享的。所以,虽然局部不一定要随整体的销毁而被销毁,但整体要么负责保持局部的存活状态,要么负责将其销毁。局部不可与其他整体共享。但是,整体可将所有权转交给另一个对象,后者随即将承担生存期职责。


    4依赖关系(Dependency) 

    依赖也是类与类之间的连接,并且依赖总是单向的。依赖是类间最弱的一种关系,一个类依赖于另一个类是指这个类和它之间存在短期的关系。实体之间一个“使用”关系暗示一个实体的规范发生变化后,可能影响依赖于它的其他实例。

    更具体地说,它可转换为对不在实例作用域内的一个类或对象的任何类型的引用。其中包括一个局部变量,对通过方法调用而获得的一个对象的引用(如下例所示),或者对一个类的静态方法的引用(同时不存在那个类的一个实例)。也可利用“依赖”来表示包和包之间的关系。由于包中含有类,所以你可根据那些包中的各个类之间的关系,表示出包和包的关系。



相关阅读

UML类图几种关系的总结


评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值