既然要画类图,那么就要先弄清楚一个很重要的概念:类。
什么是类?
在面向过程的结构化程序设计中,程序模块是由函数构成,函数将对数据处理的语句放在函数体内,完成特定的功能,数据则通过函数参数传递进入函数体。而在面向对象的程序设计中,程序模块是由类构成的。类是对逻辑上相关的函数与数据的封装,它是对问题的抽象描述。
在面向对象的思想中,认为世界是由对象组成的,或者说世界就是一个对象的集合,宇宙万物都可以用对象来描述,但是我们在描述的过程中发现:很多对象拥有共同的特征或者说属性,因此我们就把这些共同特征的事物进行抽象,提出了类的概念,类表示对现实世界中一组具有共同特征的事物的抽象,是面向对象编程的基础。
这样一来,我们用程序来描述世界就变得简单的多,比如:如果要描述这个世界上的人,那得需要多少个对象?起码得70亿个左右,但是如果用类来描述,只剩一个类,类名是person,在具体使用的时候,我们动态的实例化person类就可以描述各种各样的人,无论是哪个国家的人。
一个类通常包括:类名,属性,方法和事件。属性通常是静态的数据,在C++中称为数据成员,而方法通常是一组函数,在C++中叫做函数成员,而在UML建模的时候,我们的类通常只有类名,属性和方法。
那么类在UML的类图中是如何表示的,下面举一个简单的例子以示说明:定义一个学生类
在UML中我们用一个方框(有时候会是其他的图形,比如小人人)来表示类,共有三个部分,分别为类名,属性和方法,如上图所示:类名为Student,属性为name,age,gender方法为move(),eat(),drink()。
类和类之间不是孤立的,他们之间是有联系的,那么类和类之间都有什么关系,又如何表示呢?
通常我们将类之间的关系分为四类:关联、依赖、泛化和实现,其中关联又细分为三种:普通关联、聚合和组合。
普通关联就是类与类之间存在某种关系,是最简单的一种关联,比如职员类和公司类就是一个work in的关系,即职员在公司工作,而聚合是一种较强的关联,比如书柜和书就是一种聚合关系,是一种整体和部分的关系,即书放在书柜里,书柜是整体,书是书柜的一部分;最后的组合则是一种比聚合关系更强的关联,比如:人和他的头,手臂就是组合的关系它也具有整体和部分的关系,只是和聚合不同的地方是,组合关联的两部分是相互依存的,不可分割的,其中的代表整体部分的对象负责代表部分对象的生命周期,即主体和部分分开后不能独立存在。
关于各种关系的图符表示在这里就不再赘述了,你可以很容易找到相关的资料,重点是我们如何对问题就行抽象,如何确定对象之间是某种关系,这也是难点所在下面跟大家分享一个实例:机房收费系统的Class Diagram
UML实战之Class Diagram,布布扣,bubuko.com
原文:http://blog.csdn.net/lianjiangwei/article/details/20854645