【问题标题】:How do I represent a mixin/role/trait with UML properly?如何用 UML 正确地表示 mixin/role/trait?
【发布时间】:2011-02-11 00:37:58
【问题描述】:

我和其他几位开发人员目前正在清理我们的遗留代码库,主要是分离视觉层和数据层。为了帮助未参与此重构的开发人员理解模型,我想介绍一个(相当非正式的)类图,其中包含有关每个类的范围和所需用途的 cmets。由于我很懒,所以我想使用 UMLGraph。

但是有一个小问题:我们有一个 perl 代码库,并且重构广泛使用 Moose 角色。现在我对 UML 的了解还不够好,无法为角色找到合适的抽象——我的第一个猜测是接口,但它们也包含实现;多重继承也不能完全解决问题。

我如何(或您将如何)在类图中正确地表示角色?

【问题讨论】:

    标签: perl uml roles moose class-diagram


    【解决方案1】:

    我不是 UML 专家,但在 original paper 中,特征是这样表示的

    Traits Diagram http://img.skitch.com/20100422-8iey4atkkama53ni81c3pca562.jpg

    【讨论】:

    • 您好,此“特征图”链接无效,是否可以更新?谢谢!
    【解决方案2】:

    我会将角色表示为具有«role» 构造型的UML 类。然后,组成角色的类将与具有原型«does» 的角色关联。

    Simple Composition http://img820.imageshack.us/img820/5665/simplecomposition.png

    如果我需要使用别名或排除来进一步调整角色,我会将其创建为具有正确注释成员和«adaptation» 原型的关联类。关联类的名称无关紧要,因为它在设计中不是真正的类型;所以我就不给它命名了。

    Composition with Conflict Resolution http://img828.imageshack.us/img828/244/conflictcomposition.png

    (请注意,我已经展示了与构图相关的适配“类”以及它所适配的角色。我真正想做的是将它与MyCompositionMyRole1之间的关联联系起来。只是我使用的工具不支持关联类)。

    【讨论】:

    • Jordão,我喜欢这些图表的外观。您使用什么工具来创建它们?
    • 这就像 UML 的 graphviz。非常好!
    猜你喜欢
    • 2019-01-26
    • 2013-10-15
    • 1970-01-01
    • 1970-01-01
    • 2021-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多