代码之家  ›  专栏  ›  技术社区  ›  Nikolai Prokoschenko

如何用UML正确地表示mixin/角色/特征?

  •  9
  • Nikolai Prokoschenko  · 技术社区  · 16 年前

    我和其他几个开发人员目前正在清理遗留的代码库,主要是分离视觉层和数据层。为了帮助不参与重构的开发人员理解模型,我想介绍一个(相当非正式的)类图,其中包含关于每个类的作用域和所需用法的注释。因为我很懒,所以我想用UMLGraph。

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

    2 回复  |  直到 16 年前
        1
  •  8
  •   perigrin    16 年前
        2
  •  3
  •   Jordão    16 年前

    我将用 «role» 刻板印象。然后,组成角色的类将与原型中的角色相关联 «does» .

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

    如果我需要进一步调整角色,使用别名或排除项,我会创建一个带有正确注释的成员和 «adaptation» 刻板印象。关联类的名称无关紧要,因为它在设计中不是真正的类型;所以我就不说了。

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

    (请注意,我已经展示了与作文相关的改编“类”及其改编的角色。我真正想做的是把它和 MyComposition 和 MyRole1 . 只是我使用的工具不支持关联类)。