uml类图

来源:互联网 发布:ajax请求json数据 编辑:程序博客网 时间:2024/06/03 18:51

Uml类图是软件在设计阶段,将设计思想转化为系统的最重要的一个过程。在面向对象的编程中,我们把现实事物抽象成类,现实事物之间的关系抽象成类与类、类与接口之间的管理。类图就是描述类包含的属性、方法,及类、接口之间的协作关系的一个静态结构,在面向对象编程中,任何一个系统的结构可以说是由类、接口组成,类、接口之间相互作用才形成了一个有机的系统。因此类图的设计,是设计思想转化为系统中非常重要的步骤。
1. 类(接口)的描述
类图中类描述包括类的名称、属性和方法,见下图
这里写图片描述
2. 类关系的描述
类之间关系包括:泛化、实现、依赖、关联、聚合和组合。
1) 泛化
泛化是将具体的、个别的扩大为一般的,类之间的泛化关系即是继承关系。子类(接口)继承父类(接口)。在java中,类只能继承一个父类。在类图中使用带三角头的实线表示泛化关系,箭头从子类指向父类。见下图:
这里写图片描述
2) 实现
实现是指类与接口之间的关系,在java中类可以实现多个接口。在类图中使用带三角头的虚线表示类实现关系,箭头从实现类指向接口。见下图:
这里写图片描述
3) 依赖
依赖关系是对象之间最弱的关系,是临时性的关联。在代码中的局部变量、方法参数、方法返回值建立的对其它对象的调用关系称为依赖。在类图中使用带箭头的虚线表示,箭头从使用类指向被依赖的类。见下图:

这里写图片描述
4) 关联
关联是两个类之间的强依赖关系,这种关系是一直存在的,不想依赖关系,只是临时的。在代码中,一般表现为一A类应用别的类作为A类的属性或全局变量。关联关系分为一般关联、聚合和组合。在类图中使用带箭头的实线表示,箭头从类指向被关联的类,可以是单向或双向。
这里写图片描述
5) 聚合
聚合是关联中的一种,是“has-a”的关系。表示整体与部分的关系,这种关系比较弱,若整体不存在了,部分可单独存在。比如,公司与员工的关系就是聚合关系,公司不存在了,员工还是可以换公司存在的。整体与部分的生命周期是不一致的。聚合关系与一般关联关系只是语义上的区别,在代码层面上没有区别。在类图中,聚合使用带用空心菱形的实线表示,菱形从部分指向整体。见下图:
这里写图片描述
6) 组合
组合是一种更强烈的聚合关系,是“contains-a”的关系。它同样体现整体与部分之间的关系,但是整体与部分之间是不可分离的,整体不存在了,部分也不存在。具有相同的生命周期。例如公司与部门,就是组合关系。组合关系只是在语义层面的区别,在代码层与关联关系一样。在类图中使用带有实心菱形的实现表示,实心菱形从部分指向整体。见下图:
这里写图片描述

在本文中,所有的图均采用StartUml工具制作的。StarUML是一款开放源码的UML开发工具,是由韩国公司主导开发出来的产品。支持java、c++、c#代码。易上手、使用简单方便,建议大家作uml图可以使用它。
附一位同仁贡献的StartUml教程地址:
startuml教程

原创粉丝点击