【问题标题】:How to represent an attribute of a class that many classes inherit?如何表示许多类继承的类的属性?
【发布时间】:2022-10-23 13:39:39
【问题描述】:

我正在创建一个小 ORM,我必须使用 UML 制作一个类图。我如何表示属性是从超类继承的类实例的实例数组,如下所示:

class Model {
    public attributes: string[];
}

class User extends Model {}
class Schdule extends Model {}

class Controller {
    private models: Model[] = [new User, new Schdule]
}

如何绘制控制器类?

我这样做了:

但我认为这是错误的,因为控制器类不会有模型实例的数组,控制器类将有一个继承自模型的类数组。

【问题讨论】:

  • 你试过什么?这是您要问的一个非常基本的问题。你的问题在哪里?
  • 我同意@qwerty_so。请向我们展示您尝试制作的类图,即使您知道它是错误的。然后我们可以告诉你什么是错的以及它应该如何。

标签: arrays inheritance attributes uml class-diagram


【解决方案1】:

Model 类的私有属性 model,但具有没有上限的多重性,可以记为属性:

- model: Model [*]

但您也可以通过关联以图形方式显示它:

- 表示private* 是多重性的捷径0..* 表示至少0 实例,* 表示没有最大限制。

我让您通过添加attributesModel 的专业化来继续您的练习。

【讨论】:

  • OP询问了继承,对吗?
  • @qwerty_so 我读了这个问题:“如何表示属性是类实例的数组“然后才出现第二部分”从超类继承的实例“。所以我解释了如何显示超类的实例数组,并将更明显的类继承留作练习,因为我不想为 OP 做完整的练习。
  • @qwerty_so 此外,我认为困难似乎在于数组,因为 OP 以非常具体的方式结束:“如何绘制控制器类?" 并且控制器中没有继承(无论是在问题中还是在 JS 代码中)。
  • 好吧,出于这个和其他原因,我投票决定关闭,因为它没有明确性。谁可以解决不合适的问题/标题?什么是答案而不是猜测?
  • @qwerty_so 鉴于上面的引用,我认为这个问题相当清楚。唯一可以引起批评的是没有试探性的图表。另一方面,OP 不要求完整的图表,而是关注控制器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-06
  • 2011-01-30
  • 2013-04-13
  • 1970-01-01
  • 2020-11-08
  • 1970-01-01
  • 2011-05-09
相关资源
最近更新 更多