-
命名接口,以反映它在系统中担当的角色。
-
名称应简短,1 到 2 个单词。
-
名称中不要包含“interface”一词;它通过模型元素的类型(例如 interface)来暗示
-
描述应表达接口的职责。
-
描述的长度应是几句话,最长可为一小段。
-
描述不应只是重述一遍接口的名称,而应说明接口在系统中担当的角色。
-
操作名称应反映操作的结果。
-
当操作设置或获取信息时,在操作的名称中包含 set 或 get
就多余了。应对操作和正被设置或检索的模型元素的属性赋予相同的名称。这样命名的操作,如果不带参数,则检索属性;这样命名的操作,如果带参数,则设置属性。
示例
name() 返回对象的名称;name(aString) 将对象的名称设置为 aString。
-
操作的描述应说明操作要做什么,包括所有主要算法以及它返回何值。
-
操作参数的命名应指示正将何种信息传递给操作。
-
确定参数的类型。
由接口定义的行为被指定为一组操作。可能需要传达附加信息:
-
如何使用操作,以及这些操作的执行顺序(用示例时序图说明)。
-
实现该接口的模型元素可能所处的、外部可观察到的可能状态(通过状态机说明,请参阅指南:状态表图)。
-
测试计划和脚本,它们测试任何实现该接口的模型元素的行为。
为了对这些信息进行分组和管理,应创建一个包来包含该接口和所有相关工作产品。
每个接口代表系统中的一条“接缝”:系统可以在该处“分开”并重新构建或重新设计。接口代表了规范与设计或实施的分离。 构造良好的接口应:
-
简单却又完整,提供所有必要的操作,却又足以指定单项服务
-
可理解,提供的信息足以使用和实现接口,而不必检查现有用法或实施
-
易使用,提供信息以指导用户利用接口的主要属性,而不需要深入了解操作的细节
当您绘制接口时,
-
只要需要简单地指出系统中存在接缝,就可使用“棒棒糖”符号表示法。 最常见的情况是,您需要将此用于子系统而不是用于类。
-
在您需要表示服务本身的详细信息时,使用扩展的“类”表示法。最常见的情况是,您需要将此用于指定包或子系统提供的服务。
|