【问题标题】:UML class diagram questionsUML 类图问题
【发布时间】:2013-11-26 12:27:26
【问题描述】:

如果我有一个系统来组织飞行员和他们为工作而飞行的飞机的时间表。还有一个负责安排日程的经理。但经理也是一名飞行员。我是否需要两个单独的 user 子类作为飞行员 + 经理。或者例如在试点课程中使用 isManager 的属性会更实用吗?还是经理是飞行员的孩子?

如果 schdule 类是 system 的组合,那么创建新计划的方法是否必须在系统类中?

【问题讨论】:

    标签: class uml diagram generalization


    【解决方案1】:

    老实说,这取决于应用程序的要求以及您希望如何实现它,因为可能没有正确或错误的答案。 Pilot 和 Manager 可以是 User 类的单独泛化。用户也可以是一元关系。谁说不能在 User 类中放置 isPilot 字段?最后,将两者拆分为 User 的子类可能更实用。我知道在编码时我会这样做,将 User 作为我的基类,然后让 Pilot 和 Manager 扩展 User。

    你可以有这样的东西:

    或者,如果经理始终是飞行员,您可以这样做:

    我个人会实施前者,因为如果出现一个不是飞行员的经理怎么办?同样,就像我说的那样,这取决于应用程序的要求以及您希望如何实现它。两种方式都没有错。

    【讨论】:

    • 感谢回复:
    • @nicwhitts 如果您觉得它回答了您的问题,您能否将其标记为已回答?谢谢。
    • 意外发送** 感谢您的回复:规范没有提及任何关于经理不是飞行员的信息,我想只需要说明。在您的第二张图上,Pilot 是否也需要与时间表相关联?为了让飞行员查看他们的日程安排?
    • 是的,飞机也是如此,以获得飞机时刻表,这可能是多对多的关系。我只是展示了一个基本的实现,可以为您指明正确的方向。
    • 如果你能解决这个问题,我还有一个简短的问题,假设我添加了另一个名为机场的课程。我需要一个来自 Pilot -> Airport and Airport -> Pilot(对于机场的飞行员)和一个可导航的 -> Manager(对于机场的经理)的关联但是如果已经有一个来自 Pilot 的关联,我是否需要它从 Manager 导航回机场-> 机场? Manager 继承自上面的 Pilot
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-08
    • 1970-01-01
    • 2012-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多