在UML的静态机制中类图是一个重点,它不但是设计人员关心的核心,更是实现人员关注的核心。建模工具也主要根据类图来产生代码。类图在UML的9个图中占据了一个相当重要的地位。类图显示了一组类、接口、协作以及他们之间的关系。
1.类的表示:
类的五种表示方法:
(注:类的属性、操作中的可见性使用+、#、-分别表示public、protected、private)
2.类的关系:
关系名称 |
说明 |
表示 |
||
关联 Association |
单向关联 |
唐僧与徒弟是单向关联。 |
带箭头的直线 |
|
双向关联 |
徒弟与悟空、悟能、悟净是双向关联。 |
无箭头的直线 |
||
自身关联 |
一些类的属性对象类型为该类本身 |
回折的带箭头直线 |
||
多重性关联 |
表示一个类的对象与另一个类的对象连接的个数。 |
在关联直线上标明:1..1/0..*/1..*/0..1/m..n |
||
整体/部分关系 |
聚合 |
成员类是整体类的一部分,但成员类可以脱离整体类独立存在,如书和书架的关系。 |
带空心菱形(指向整体类)的直线 |
|
组合 |
成员类是整体类的一部分,且整体类控制成员类的生命周期,如书和页的关系。 |
带实心菱形(指向整体类)的直线 |
||
泛化 Generalization |
定义了一般元素和特殊元素之间的分类关系,类之间的这种泛化关系也就是继承关系,也称为“is-a-kind-of”关系。有单重继承和多重继承之分。 |
带空心三角的直线,空心三角指向父类。 |
||
依赖 Dependence |
是一种使用关系,有以下情况: 1. A类是B类方法当中的一个参数。 2. A类是B类方法中的局部变量。 3. A类向B类发送消息,影响B类发生变化。 |
带箭头的虚线,由依赖方指向被依赖方。 |
||
实现 Realization |
用来规定接口和实现接口的类或者构建结构的关系。 |
带空心三角形的虚线 |
||
总结 |
组合、聚合、关联和依赖表示类与类、类与接口间的引用,是横向关系。其强弱关系为:组合>聚合>关联>依赖。实现(和接触)表示类与类、或者类与接口之间的纵向关系。 |
3.类图的构成:
类——class:一组具有相同属性、方法、关系和语义的对象的描述,一个类实现一个或多个接口。
接口——interface:描述了一个类或构件的一个服务的操作集,接口仅仅是定义一组操作的规范,并没有给出这组操作的具体实现。
协作——collaboration:一个结构事物用于表达静态结构和动态行为的概念组合,表达不同事物相互协作完成一个复杂功能。
关系——dependency、generalization、association、realization
包——package:由类、接口、构件、用例、其他包等元素组成,形成的命名空间。
子系统——subsystem:子系统是一种模型元素,它具有包和类的语义。子系统的行为由它所包含的类或其他子系统提供。子系统实现一个或多个接口,这些接口定义子系统可以执行的行为。
4.如何画类图:
2.抽象得到每个类的属性,方法。
3.准确表达类与类之间的关系,用好四种关系,不能只限于用依赖
4.对关系进行修饰。
原文:http://blog.csdn.net/cyl_happygirl/article/details/19167811