UML类图详解及类图设计


      UML中定义了用例图、类图、时序图、协作图等九种。设计模式中经常会用到的是类图。类是面向对象系统组织结构的核心,类可以说是对一组具有相同属性、操作、关系和语义的对象的抽象。在UML中,类使用带有分隔线的矩形表示,它包含名称部分(Name)、属性部分(Attribute)和操作部分(Operation)。

其中属性的表现形式是[可见性] 属性名:类型 [=默认值]。操作的表现形式是:[可见性] 名称(参数列表)[:返回类型]

详细见下图。

1.类图基础属性

+表示public
-表示private  
#表示protected
~表示default,也就是包权限  
_下划线表示static  
斜体表示抽象

2.类之间关系

在UML类图中,常见的有以下几种关系: 
泛化(Generalization):带空心三角箭头的实线来表示,箭头由子类指向父类
实现(Realization):带空心的三角箭头的虚线来表示,箭头从实现类指向接口
关联(Association):分为双向关联和单向关联,其中,双向关联可以用带两个箭头或者没有箭头的实线来表示,单向关联用带一个箭头的实线来表示,箭头从使用类指向被关联的类,还可以再关联线的两端标注角色名,补充说明它们的角色。
聚合(Aggregation),用带空心菱形的实线表示,菱形指向整体
组合(Composition):用带实心菱形的实线来表示,菱形指向整体。
依赖(Dependency):使用带箭头的虚线表示,箭头从使用类指向被依赖的类
下图为类之间的关系在UML中的图形表达式:

2.1泛化

泛化(Generalization)表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系
(1)继承
介绍:
继承表示是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。
表示方法:
继承使用空心三角形+实线表示。
示例:
鸟类继承抽象类动物
(2)实现
实现表示一个class类实现interface接口(可以是多个)的功能。
表示方法:
使用空心三角形+虚线表示
比如:大雁需要飞行,就要实现飞()接口
 

2.2依赖

对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。
表示方法:
依赖关系用虚线箭头表示。
示例:
动物依赖氧气和水。调用新陈代谢方法需要氧气类与水类的实例作为参数