uml中的模板方法

Template method in uml

有什么方法可以在 UML 中显示模板方法(我指的是 C++ 模板方法,而不是模式)?我只找到模板 类。

假设我有

class A {
  public:
    template <typename T>
    std::vector<T> func(T& var);
};

所以,我现在可以在 uml 中显示它的唯一方法是 +func(in var : T&) : std::vector<T>。有什么办法可以说它是模板,而 T 不是通常的类型吗?

我认为这 link 符合您的要求。

Template on UML diagram

这里我不是很确定,但我认为答案是否定的。

如果我理解正确,UML 只能处理 class 级别的模板——这意味着您的 class A 需要指定为模板 class func() 有效的顺序。

换句话说,UML 不允许在未在 class 签名中指定的情况下在操作中引入模板参数。我觉得。

请始终记住,UML 不是一种编程语言,事实上,当遇到任何特定语言的重要源代码结构时,UML 往往会崩溃。

更多信息here

我被迫将它们表示为单独的模板函数对象。不过,这仅用于表示和建模的目的。

所以

template<typename T> void foo (T& t) { ... }

建模为:

template<typename T> class foo
{
    void operator() (T& t) { ... }
}

这是一个黑客。