问题描述
我正在为Java软件设计一个类UML。我不太了解什么是刻板印象。正式定义:
构造型是一个配置文件类,它定义了如何将现有的元类扩展为配置文件的一部分。它可以代替扩展元类使用的平台或领域专用术语或符号来使用
这是否意味着构造型应该是父类的名称?但是为什么有些超类也有构造型?
因此,例如,我有一个超类Animal和一个扩展Animal类的类狗,这两个类的刻板印象是什么?另外,为什么有些类没有构造型。
解决方法
什么是刻板印象,目的是什么?
构造型通过允许对进行某些分类的元素(比UML本身预见的更详细)来扩展UML。这有助于使模型更具表现力。
example是典型的Entity,Control,and Boundary刻板印象。它们用在用例驱动的设计中:在类图中,您可以立即找出哪些类代表用例逻辑(标记为«control»
构造型),哪些类代表与参与者的用户界面( «boundary»
原型),以及哪些类代表业务/域对象(标记为«entity»
)。
构造型的另一种用法是指示应该实现类的方式,example可以将与内存中对象相关的数据库表对应的类标记为«table»
,或者指示对象中的«persistent»
。一个更常见的用法是显示一些language specific并且在UML中没有等效概念的概念。我特别认为C#«struct»
具有值语义,而C#类具有引用语义,即C#«属性»(在属性级别是原型)。
如何定义构造型?
定型在profile中定义。您可以在配置文件图中将stereotype视为类。
但是您不能将其与模型中的其他类相关联的普通类。因此,这里没有继承。您永远不会将超类表示为构造型。
构造型是与“元模型”相关的类,其表示UML标准中定义的UML标准元素。因此,它是一类类(或关联类或任何其他UML元素)。
要详细说明您的示例,请使用抽象超类Animal
和具体子类Cat
和Dog
:
- 您可能会影响他们所有的
«entity»
配置文件,因为它们都属于域模型。 - 如果您想使用concrete table inheritance将对象存储在RDBMS中,则可以对
Cat
和Dog
使用构造型«persistent»(因为具体的表继承模式不实现抽象类的持久性)