/** * @Stereotype concreteState * @author AuthorName * @version 0.0001 */ public class Sent implements MessageStatus { } 在UML中,并非只有类可以通过指定构造型而约束其定义。图二显示了两个类之间的依靠关系,用构造型来表示这种依靠关系的类型。在这个例子中,Factory类的对象负责创建Item类的对象。Factory类的代码显示了定制的javadoc标记如何用构造型来简洁明了地说明这种依靠关系。 图二:加注instantiate构造型的UML依靠关系 符号说明:在前面的文章中,我们看到了三种类之间的关系,这里出现的是第四种。关联关系用一根实线加上开叉的箭头表示(假如关联关系是单向的话),一般化关系用实线加上封闭的箭头(从子类指向超类)表示,Realization关系用虚线加上封闭的箭头(从实现接口的类指向接口)表示。现在我们看到了第四种箭头与线型的组合:虚线加上开叉箭头表示的依靠关系。
public class Factory { /** * @dependency <> Item * @return a new Item */ public Item createItem() { return new Item(); } } 操作和属性同样可以指定构造型。如图三所示,两个操作被加注了构造型,用来表示它们是否会修改属性的值。与图三对应的源代码同样利用定制的javadoc标记说明该方法的构造型信息。 图三:为类的操作加注UML构造型 public class Sale { ... /** * @Stereotype query * @return total PRice of sale */ public BigDecimal calcTotal() { } ... } 在java源代码中加上了描述构造型信息的定制javadoc标记之后,好处不仅仅在于减少了需要手工编写的注释,而且使得UML工具有可能处理这些标记并完成下面这类任务: