我正在为JAVA软件设计绘制一个类UML图。我不太理解什么是“构造型”。它的正式定义是:
构造型是一种配置文件类,它定义了如何扩展现有的元类作为配置文件的一部分。它使得在扩展的元类中可以使用特定于平台或领域的术语或符号,以代替或补充原本使用的术语或符号。
这是不是意味着构造型应该是父类的名称?但是为什么有些超类也有构造型呢?
例如,我有一个超类Animal和一个扩展自Animal类的类Dog,这两个类的构造型可能是什么?此外,为什么有些类没有构造型?
我正在为JAVA软件设计绘制一个类UML图。我不太理解什么是“构造型”。它的正式定义是:
构造型是一种配置文件类,它定义了如何扩展现有的元类作为配置文件的一部分。它使得在扩展的元类中可以使用特定于平台或领域的术语或符号,以代替或补充原本使用的术语或符号。
这是不是意味着构造型应该是父类的名称?但是为什么有些超类也有构造型呢?
例如,我有一个超类Animal和一个扩展自Animal类的类Dog,这两个类的构造型可能是什么?此外,为什么有些类没有构造型?
"Stereotype"通过允许比UML本身更详细地对某些元素进行分类来扩展UML。它有助于使模型更富表现力。
一个经典的例子是"实体(Entity)"、"控制(Control)"和"边界(Boundary)"这些"Stereotype"。它们在基于用例的设计中使用:在类图中,您可以立即找到哪些类表示用例逻辑(标记为"«control»
"Stereotype),哪些类代表带有参与者的用户界面("«boundary»
"Stereotype),以及哪些类代表业务/领域对象(标记为"«entity»
")。
Stereotype的另一个用途是指示类应该如何实现,例如将相应于内存中对象的数据库表标记为"«table»
"的类,或指示哪些对象是"«persistent»
"的。 Stereotype的更常见用法是显示特定于语言并且在UML中没有等效项的一些概念。我特别想提到C#"«struct»
",它具有值语义,而C#类具有引用语义,或者C#中的属性(在属性级别上是一种Stereotype)。
Stereotype在配置文件中定义。您可以将Stereotype视为配置文件图中的一个类。
但这不是普通的类,您无法将其与模型中的其他类相关联。因此,在此处没有继承。Stereotype是与“元模型”相关的类,这意味着UML标准中定义的UML标准元素。因此,它是类的类(或关联的类,或任何其他UML元素的类)。
为了举例说明,假设有一个抽象超类Animal
和具体子类Cat
和Dog
:
«实体」
档案,因为它们都属于领域模型。Cat
和 Dog
使用「持久化」(persistent) 构造型(因为具体表继承模式不为抽象类实现持久化)。