【问题标题】:Drawing Smart Pointers in UML在 UML 中绘制智能指针
【发布时间】:2012-02-09 09:31:44
【问题描述】:

是否有一种公认的方式来描述 UML 类图中由 boost 共享指针持有的对象(即,应该使用空的或完整的菱形,如聚合或组合)?

【问题讨论】:

  • 如果你会画UML图,你也知道对象的所有权关系,那你为什么需要一个智能指针呢?

标签: c++ boost uml shared-ptr


【解决方案1】:

我不知道关于如何将智能指针建模为关系的总体共识。

黑色菱形表示控制寿命,白色菱形表示不控制寿命,因此您可以在本地同意将黑色菱形用于unique_ptr,将所有黑色菱形用于shared_ptr,将白色菱形用于weak_ptr。

如果你真的想为 smart_ptr 建模,我建议在关系中添加一个属性类:

0
|  /----------------\
+--+ shared pointer |
|  \----------------/
V

【讨论】:

    【解决方案2】:

    您的 UML 类模型应该是抽象的并且没有语言习语。

    实际上,您可以为包括OCL 约束的每种类型的智能点创建关系的原型。我对每种智能指针子类型的具体语义不够熟悉,无法提供您的详细信息,但OCL Specification 应该会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-09
      • 1970-01-01
      • 2017-04-29
      • 1970-01-01
      • 1970-01-01
      • 2021-11-28
      • 2020-07-10
      • 2011-08-12
      相关资源
      最近更新 更多