如何在包 TikZ-UML 的 umlclass 中将方法定义为抽象

如何在包 TikZ-UML 的 umlclass 中将方法定义为抽象

我仔细阅读了 TikZ-UML 文档,并在 Google 上搜索了很多,但我找到的唯一类似的回复是使用 metaUML 在抽象类中设置抽象方法但它使用的是 metaUML 而不是 TikZ-UML。

在 UML 中,抽象方法应该呈现为斜体,所以我想完成类似的事情: uml类

我发现唯一的办法是:

\documentclass{article}
\usepackage{tikz-uml}

\begin{document}
\begin{tikzpicture}%
  \umlclass[type=abstract]{AbstractClass}{
  }{
    +\textit{abstractMethod()}\\
    +concreteMethod()
  }
\end{tikzpicture}%
\end{document}

我不喜欢它,因为它混淆了表示和语义,有没有一种本机的、语义的方式来做到这一点?

答案1

软件包手册分别描述了静态和虚拟(抽象)类的两个命令\umlstatic和。请参阅\umlvirthttps://perso.ensta-paris.fr/~kielbasi/tikzuml/var/files/html/web-tikz-uml-userguidech2.html#x4-90002.1.2


\begin{tikzpicture} 
\umlclass{namespace::A}{ 
  + n : uint \\ \umlstatic{-- i : int} \\ \# r : const float 
  }{ 
  + setA(i : int) : void \\ \umlvirt{\# getA() : A} 
} 
\end{tikzpicture}

在此处输入图片描述

请注意,在包的源代码中,这两个命令被定义为和的简单包装器\underline\textit类似于我上面将命令别名为的评论\textit)。请参阅 的第 622-623 行tikz-uml.sty

\newcommand{\umlstatic}[1]{\underline{#1}}%
\newcommand{\umlvirt}[1]{\textit{#1}}%

相关内容