【发布时间】:2021-02-25 18:06:20
【问题描述】:
我正在学习 UML,想创建一个小型餐厅应用程序,它有一个菜单、菜单中包含的菜肴、菜肴中使用的产品。菜单分为不同的类型,只能包含适当的类型。 我想课程菜单和菜肴应该是抽象的。 这是我的 UML 图。
如何最好地展示抽象类之间的关系?
【问题讨论】:
-
欢迎。对于刚开始学习的人来说,这是一个令人印象深刻的图表 :-) 如果我很好地理解了您的问题,您会注意到抽象类之间存在组合关系,但您只显示了特定类之间的组合。这是一个相当高级的主题,你可以看看at this answer(它是关于关联类的,但类似的技术可以用于组合。
-
现在的问题是你是否真的需要这个复杂的结构,具体的类之间有专门的组合,或者你是否可以只使用抽象类之间的组合(它是继承的),并添加一些约束说汤菜单只能由汤菜组成?
-
“抽象类的关系”是什么意思?您的图表在抽象类之间没有关系。只能从抽象类继承到具体类。顺便提一句。抽象类用斜体名称表示,而不是添加单词“Abstract”。
-
可能我表达了这个想法,因为我是 UML 的初学者。 “关系”一词是指我的应用程序中的类或对象之间的链接,如果我不正确,我很抱歉。我想使用 UML 创建一个应用程序模型。我想在抽象类之间使用组合(这是继承的),并添加一些约束来说明汤菜单只能由汤菜组成。您能否提供有关 UML 的资源或书籍。抱歉回复晚了。
-
@Pirogov 没问题,我们会提供帮助。我注意到你的混凝土菜肴继承了有序的成分,并有自己的成分。这是非法的,正如here 所解释的那样。在我能提供帮助之前有一个问题:菜单是什么?是报价,还是相关项目的目录?还是某种汤的组合(例如汤+主菜+甜点或开胃菜+没有甜点的主菜,或开胃汤-+主汤+甜点汤)?
标签: inheritance uml composition class-diagram