指南:接口
接口用来表示系统的用户视图并隐藏它的实施。本指南建议使用一组规则来控制接口规范。
关系
相关元素
主要描述

命名接口 回到页首

  • 命名接口,以反映它在系统中担当的角色。
  • 名称应简短,1 到 2 个单词。
  • 名称中不要包含“interface”一词;它通过模型元素的类型(例如 interface)来暗示

描述接口 回到页首

  • 描述应表达接口的职责。
  • 描述的长度应是几句话,最长可为一小段。
  • 描述不应只是重述一遍接口的名称,而应说明接口在系统中担当的角色。

定义操作 回到页首

  • 操作名称应反映操作的结果。
  • 当操作设置获取信息时,在操作的名称中包含 setget 就多余了。应对操作和正被设置或检索的模型元素的属性赋予相同的名称。这样命名的操作,如果不带参数,则检索属性;这样命名的操作,如果参数,则设置属性。

示例

name() 返回对象的名称;name(aString) 将对象的名称设置为 aString

  • 操作的描述应说明操作要做什么,包括所有主要算法以及它返回何值
  • 操作参数的命名应指示正将何种信息传递给操作。
  • 确定参数的类型

记录接口 回到页首

由接口定义的行为被指定为一组操作。可能需要传达附加信息:

  • 如何使用操作,以及这些操作的执行顺序(用示例时序图说明)。
  • 实现该接口的模型元素可能所处的、外部可观察到的可能状态(通过状态机说明,请参阅指南:状态表图)。
  • 测试计划和脚本,它们测试任何实现该接口的模型元素的行为。

为了对这些信息进行分组和管理,应创建一个包来包含该接口和所有相关工作产品。

提示与技巧 回到页首

每个接口代表系统中的一条“接缝”:系统可以在该处“分开”并重新构建或重新设计。接口代表了规范与设计或实施的分离。 构造良好的接口应:

  • 简单却又完整,提供所有必要的操作,却又足以指定单项服务
  • 可理解,提供的信息足以使用和实现接口,而不必检查现有用法或实施
  • 易使用,提供信息以指导用户利用接口的主要属性,而不需要深入了解操作的细节

当您绘制接口时,

  • 只要需要简单地指出系统中存在接缝,就可使用“棒棒糖”符号表示法。 最常见的情况是,您需要将此用于子系统而不是用于类。
  • 在您需要表示服务本身的详细信息时,使用扩展的“类”表示法。最常见的情况是,您需要将此用于指定包或子系统提供的服务。