You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ORM开发中,UML类图如何表示父类子类实例数组属性?

如何在UML类图中建模Controller类

核心建模思路

你的代码里Controller的models属性利用了面向对象的多态特性:声明为Model[]但实际容纳Model的子类实例。在UML中,这种场景的建模完全符合标准规范,不需要特殊修改来单独指定子类,具体方式如下:

具体建模步骤

  1. 基础类结构
    • 绘制Model类,标注属性:+ attributes: string[*]
    • 绘制User和Schedule类,用空心三角箭头指向Model,表示泛化(继承)关系
  2. Controller与Model的关联
    • 绘制Controller类,通过聚合关系与Model类连接:
      • 在Controller端添加空心菱形(表示聚合,说明Model实例可独立于Controller存在)
      • 关联两端标注基数:Controller端为1,Model端为*(表示一个Controller持有多个Model实例)
    • 可选:在Controller类内部显式标注属性:- models: Model[*],和关联关系配合使用,更清晰体现属性的类型与数量

为什么这样是正确的

UML中,父类型的集合声明(如Model[*])天然支持容纳其所有子类的实例,这和代码中的多态语义完全一致。User和Schedule与Model的泛化关系已经明确了它们的继承关系,因此Controller的models集合可以合法包含这两个子类的实例,你的初始建模如果是这样的结构,其实是正确的,无需额外调整来“指定子类”。

内容的提问来源于stack exchange,提问作者Miguel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 22:35:22