我碰到下面的描述IsRoot
,IsAbstract
与IsLeaf
但不明白的时候,你会使用它们.
摘自http://www2.sys-con.com/itsg/virtualcd/dotnet/archives/0108/clark/index.htm:
通过选中IsRoot复选框,您将限制该类继承自其他类.检查IsAbstract限制类被实例化,并强制客户端实例化派生类以访问类的功能.检查IsLeaf表示该类已密封.密封类是不可继承的,有助于限制继承链的深度.
我的理解
有人可以给我一个使用这些模型的真实示例吗?例如,我可以想象诸如'car'之类的类是超类并且是抽象的,在它之下你会有类似'Volvo','Chevrolet'等类.
isRoot
UML2中不再存在.在UML 1中,它意味着(来自规范):isRoot:指定GeneralizableElement是否为没有祖先的根GeneralizableElement.True表示它可能没有祖先,false表示它可能有祖先(无论它是否实际上有任何祖先).
isAbstract
表示元素不完整且无法实例化.如果为true,则分类器不提供完整的声明,通常不能实例化.抽象分类器旨在由其他分类器使用(例如,作为一般元关系或泛化关系的目标).默认值为false.
isLeaf
意味着你不能重新定义元素,就像final
在某些编程语言中一样.指示是否可以进一步重新定义RedefinableElement.如果值为true,则无法进一步重新定义RedefinableElement.默认值为false.