UML实战之Class Diagram

        既然要画类图,那么就要先弄清楚一个很重要的概念:类。

什么是类?

        在面向过程的结构化程序设计中,程序模块是由函数构成,函数将对数据处理的语句放在函数体内,完成特定的功能,数据则通过函数参数传递进入函数体。而在面向对象的程序设计中,程序模块是由类构成的。类是对逻辑上相关的函数与数据的封装,它是对问题的抽象描述。

        在面向对象的思想中,认为世界是由对象组成的,或者说世界就是一个对象的集合,宇宙万物都可以用对象来描述,但是我们在描述的过程中发现:很多对象拥有共同的特征或者说属性,因此我们就把这些共同特征的事物进行抽象,提出了类的概念,类表示对现实世界中一组具有共同特征的事物的抽象,是面向对象编程的基础。

        这样一来,我们用程序来描述世界就变得简单的多,比如:如果要描述这个世界上的人,那得需要多少个对象?起码得70亿个左右,但是如果用类来描述,只剩一个类,类名是person,在具体使用的时候,我们动态的实例化person类就可以描述各种各样的人,无论是哪个国家的人。

        一个类通常包括:类名,属性,方法和事件。属性通常是静态的数据,在C++中称为数据成员,而方法通常是一组函数,在C++中叫做函数成员,而在UML建模的时候,我们的类通常只有类名,属性和方法。

        那么类在UML的类图中是如何表示的,下面举一个简单的例子以示说明:定义一个学生类


             在UML中我们用一个方框(有时候会是其他的图形,比如小人人)来表示类,共有三个部分,分别为类名,属性和方法,如上图所示:类名为Student,属性为name,age,gender方法为move(),eat(),drink()。

        类和类之间不是孤立的,他们之间是有联系的,那么类和类之间都有什么关系,又如何表示呢?

        通常我们将类之间的关系分为四类:关联、依赖、泛化和实现,其中关联又细分为三种:普通关联、聚合和组合。

        普通关联就是类与类之间存在某种关系,是最简单的一种关联,比如职员类和公司类就是一个work in的关系,即职员在公司工作,而聚合是一种较强的关联,比如书柜和书就是一种聚合关系,是一种整体和部分的关系,即书放在书柜里,书柜是整体,书是书柜的一部分;最后的组合则是一种比聚合关系更强的关联,比如:人和他的头,手臂就是组合的关系它也具有整体和部分的关系,只是和聚合不同的地方是,组合关联的两部分是相互依存的,不可分割的,其中的代表整体部分的对象负责代表部分对象的生命周期,即主体和部分分开后不能独立存在。

        关于各种关系的图符表示在这里就不再赘述了,你可以很容易找到相关的资料,重点是我们如何对问题就行抽象,如何确定对象之间是某种关系,这也是难点所在

        下面跟大家分享一个实例:机房收费系统的Class Diagram


评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值