5.5.5 理解接口
在处理一个接口时,首先看到的是一组操作,该组操作描述了类(或构件)的服务。更深些,会看到这些操作的全部特征标记,连同它们的各项具体特性,如可见性、范围和并发语义等。这些特性是重要的,但是对于复杂接口来讲,这些特性还不足以帮助理解所描述的服务的语义,对如何正确地使用这些操作更是知之甚少。在缺少任何其他信息的情况下,必须深入到一些实现接口的对象,以领会每个操作做什么以及这些操作如何协同工作。(https://www.daowen.com)
在UML中,为了使接口易于理解和处理,可以为接口提供更多的信息。首先,可以为各个操作附上前置和后置条件,为整个类或构件附上不变式。这样需要使用接口的客户就能理解接口做什么以及如何使用它,而不必深究其实现。若要求严格,可使用UML的OCL形式化地描述其语义。其次,给接口附上一个状态机。用状态机详述接口操作的合法局部命令。最后,可以为接口附上协作。通过一系列的交互图,用协作详述接口的预期行为。