48.指定操作词法
可以制定操作的工作,可用伪代码或者用说明描述操作逻辑。不影响代码生成。
类之间可以建立四种关系:关联、依赖性、累积和一般化。
(1)关联Associations:是类之间的词法连接,使一个类知道另一个类的公开属性和操作。关联有单向和双向之分。如果两个类是双向关联的,Rose将属性放进彼此类中。单向关联如下图所示,则Person知道House的公开属性和操作,而House不知道Person的。交互图中Person可以向House发消息,而House不可以向Person发消息。
通过交互图可以确定关联方向,如果交互图中总是Person向House发消息,则是从Person到House的单向关系。如果又有从House到Person的关系,则需要双向关系。
单向关联有助于标识可复用的类。如果House和Person间关系是双向的,则每个类都需要知道对方,因此两者都不能复用。任何输出多个单向关系的类都很难复用,而只接收单向关系的类则容易复用。如下图所
(2)依赖性Dependencies:显示一个类引用另一个类,在C++中加入#include语句,因此被引用类的头文件的改变可能影响引用类。依赖与关联不同,首先依赖性总是单向的,显示一个依赖于另一个类的定义,其次Rose不对依赖性产生属性。如下所示,Client类依赖于Supplier类的定义。
(3)累积Aggregations:是强关联。累积关系是整体与个体间的关系。累积可以反身。累积关系生成代码。
(4)一般化Generalizations:显示类之间的继承关系。在UML中,继承关系被称为一般化,显示为子类指向父类的箭头。注意:继承的层数不可太多。
50.如何寻找类之间的关系
(1)首先检查交互图,如果类A向类B发出消息,则它们必须有关系。通常用这个方法找出的关系是关联和依赖性。