【问题标题】:Aggregation relationship between client and Person/Organization客户与个人/组织之间的聚合关系
【发布时间】:2010-10-28 07:07:41
【问题描述】:

我有一个 Client 对象,其中有一个 Person 对象或 Organization 对象。这些 Person 对象或 Organization 对象可能与独立于 Client 对象的其他对象有关系。在这种情况下,我应该在 Client -> PersonClient -> Organization 之间使用通用聚合关联,其中 Client 对象是整体。

还要注意这些场景:

  1. 在某些情况下,Person 可能是普通的 Person个人代表客户(*组织*)
  2. 付款
  3. 个人可能是从我们那里购买了产品客户
  4. 人员可能是供应商

【问题讨论】:

    标签: uml domain-model


    【解决方案1】:

    虽然您确实没有提供足够的信息,但听起来您在描述一个典型的Role Class Model

    我怀疑您的客户并没有真正拥有个人或组织,而是该个人或组织客户或 IOW,或者是个人或者一个组织可以在某种关系中扮演客户的角色。

    有多种方法可以对此建模,但没有一种正确的解决方案。你可能会发现这个article 很有帮助

    【讨论】:

    • 除了 Person 或 Organization 类拥有的数据之外,Client 对象还将拥有更多(客户端)信息。
    • 我已经检查了您提供的文章,我不喜欢。 4(角色类泛化),但由于 PHP 不支持多重继承,我会尝试不。 3(角色类关联)这是我建议的,但它使用的是普通关联。
    【解决方案2】:

    不要忘记两个关联之间的异或约束(因为客户端不能同时连接到个人和组织)

    【讨论】:

    • 你知道在BOUML中怎么做吗?
    • 你同意我应该使用通用聚合吗?
    • 没有足够的信息来判断这应该是聚合还是正常关联,但语义几乎相同,所以并不那么重要
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    • 2015-08-07
    相关资源
    最近更新 更多