3.3.1 类

3.3.1 类

类是一组具有相同属性、操作、关系和语义的对象的集合。类包含3个组成部分, 第一个是类名; 第二个是属性(Attributes); 第三个是该类提供的方法。类名部分是不能省略的, 其他组成部分可以省略。类如果有属性, 则每一个属性都必须有一个名字, 另外还可以有其他的描述信息, 如可见性、数据类型、默认值等; 类如果有操作, 则每一个操作也都必须有一个名字, 其他可选的信息包括可见性、参数的名字、参数类型、参数默认值和操作的返回值的类型等。

根据在用例实现中所起的作用, 将系统中的类分为以下3种类型。

1.实体类

实体类是系统表示客观事物的抽象要素。实体类一般来源于业务分析中所确定的实体, 一般都对应着在业务领域中的某个客观事物, 或是具有较稳定信息内容的系统元素。通常可以从业务领域模型中找到这些实体类。

2.边界类

边界类是描述系统与使用者之间交互的抽象要素。边界类只对系统与使用者之间的交互进行建模, 并不描述交互的具体内容及交互界面的具体形式。每一个使用者应该至少拥有一个边界类, 以表示它与系统的交互处理。但如果当某个使用者与系统交互内容比较频繁, 而且各交互内容之间也不存在较密切的关系时, 便需要为这个使用者设置一个新的边界类。

一般来说, 可以从两个方面查找边界类: 一方面是根据每个用例主要使用者至少有一个边界类的原则来获取用户界面边界类; 另一方面是考虑外部设备或系统与新系统通信之间的接口, 根据这些接口可以获得边界类。

3.控制类

控制类是描述系统对其他对象协调控制、处理逻辑运算的抽象要素。一般来说, 一个较复杂的用例一般都需要一个或多个控制类来协调被协调中各个对象的行为。控制类有一个非常大的好处, 它可以有效地把边界对象与实体对象区分开, 使系统对其边界内发生的变更具有适应性。同时, 这些控制类还可以把用例所特有的行为与实体对象区分开, 从而提高实体对象在用例和系统中的复用性。

图3-10所示是“购物车添加商品” 用例类图。其中“购物车界面” 是边界类, “添加商品” 是控制类, “商品” 是实体类。

图3-10 “购物车添加商品” 用例类图