前言:
在谈类图之前,我们有必要回顾下什么是类:类是具有相似结构、行为和关系的一组对象的描述符。类是面向对象思想中最重要的一环,可以说我们正是借助类来实现对现实世界的可视化抽象的。没有类的面向对象思想是苍白的;而类图则是实现类可视化的一个工具。类图不但是设计人员关心的核心,还是实现人员最关注的的一环。因为建模的主要依据就是类图。
构成:
类在类图中由类名、属性和操作这三个要素构成。至于如何理解属性和操作,我们可以通过练习客观世界进行理解。属性的话,特指一些静态的东西,例如我们头发的颜色;操作的,特指一些我们发出的动作,如我们的老师的一个操作是讲课,诸如此类等等。比较有趣同时也是比较无趣的一点是,由于可见性的问题,类图中的类有好几种形式。从这一点来说,其他八种图简直屌丝。。。。
关系
言归正传,扯得有点远了。下面我们来说类图中用到的的关系。个人认为,相对于用例图,类图中的关系要求的更为精准。具体来说,类图中用到的关系有关联、泛化、依赖和实现,其中关联又包括普通关联、聚合和组合。而关于前面提到的类图对关系要求的更为具体,主要体现在这样一个原则上:第一点,能用关联描述的关系绝对不能用依赖应付;第二点,可以使用聚合表示的绝对不能使用组合表示,这两点可以概括为精准和强内聚弱耦合。关于类图中的具体关系的详细情况,请参看下面这张导图:
就我目前的能力来看,类图中的关系时最复杂并且要求的最严格的了,所以我们有必要了解下类图中的关系。总体来说,类图用到了UML关系中的所有:关联、泛化、依赖和实现。
而且类图是将泛化这一概念用到了机智的一张图。其他八张图大多只是对各自的属性和方法进行了泛化;而类图不仅仅只是对各自类的属性和方法进行了泛化,还对类本身进行了泛化,即所谓的继承。