繁体   English   中英

我应该把删除的方法/成员放在 uml class 图中吗?

[英]Should I put deleted method/member in uml class diagram?

例如在这样的 class 中->

class ProfilometerManager
{
int a = 6;
public:
    ProfilometerManager(ProfilometerManager& other) = delete; //can not be cloneable
    void operator=(const ProfilometerManager&) = delete; // can not be assignable
}

UML 表示法不支持这种表示法。 该标准在其语法中定义了将=用于属性的默认值而不是用于操作。

如果您在图表中写上= delete ,那么您的具有 C++ 背景的读者可能会理解它,但这不是标准的,并且对于许多其他建模者来说会显得模棱两可。

在 UML 中,对操作使用 class 名称甚至没有定义构造函数,您需要一个 «Create» 构造型来明确定义构造器(尽管同样,大多数读者将完全理解没有构造型的含义)。

我建议不要添加它:它不符合 UML 语法,它是特定于语言的,并且不对应于 UML 中的任何内容。 不幸的是,UML 中没有任何东西可以保证不存在 class 功能:如果一个操作未显示在图表上,则可能意味着它不存在,但也可能意味着它与此特定图表无关。 如果您想坚持某些操作不存在的事实,最好的方法是在 class 中添加注释并明确此详细信息。 作为替代方案,您可以考虑在 UML 配置文件中定义具有等效含义的«Deleted»构造型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM