Mat*_*lly 3 oop ocaml uml anonymous
我在 OCaml 中创建了一个直接对象。
let x =
object (self)
val dataMember = 3
method aMethod = print_endline "Called a method"
end;;
Run Code Online (Sandbox Code Playgroud)
由于对象没有名称(它被认为是匿名的吗?),如何在 UML 中正确表示它?
谢谢。
这是我发现的。我会按照下图(如果可以的话)进行操作,但首先进行一些讨论。在 UML 中命名某些内容并不意味着它在实现中不能是匿名的。我更难以将其显示在另一个类的“内部”,这很困难,因此下面使用的包/组件包含行。您还可以使用实例化连接来显示您正在寻找的内容。您还可以使用组件,因为它们允许包含。最后,虽然我很困惑为什么你要建模一个匿名类,因为它不是结构的一部分,因为你永远不会在类之外引用它(一般来说),但更多的是行为。这就是为什么实例和属性允许匿名元素。如果您开始对 LISP 等进行建模,这个问题就会变得非常有趣。
\n\n最新的 UML 2.0: \n
\n (来源:informit.com)
笔记,这是图 3.22,作者说“Stereotype”,这是不正确的,因为它不是语言的一部分,因此它是一个关键字,这意味着不是正式模型的一部分,任何旧字符串。并非所有工具都支持该表示法,但令我惊讶的是 RSA/RSM 确实支持该表示法,并且使用了接近该表示法的东西。
\n\n源页面 - http://www.informit.com/articles/article.aspx?p=336264&seqNum=3
\n\n从 UML 规范本身来看:
\n\n对于属性 -\n可能会显示一个属性符号,其名称字符串中仅包含一个名称(不带冒号)。这意味着嵌套在包含类的命名空间内的匿名命名类的定义。该部件具有该匿名类作为其类型。匿名类的每次出现都与其他出现的情况不同。匿名定义的类具有用部件符号指定的属性。允许显示定义匿名类的属性和操作的隔间。
\n\n对于实例 - (实例的名称是可选的)\n未命名分类器的匿名实例规范的标准表示法是带下划线的冒号 (\xe2\x80\x98:\xe2\x80\x99)。如果实例规范将值规范作为其规范,则值规范将显示在名称后面的等号 (\xe2\x80\x9c=\xe2\x80\x9d) 后面,或者在名称下方不显示等号。如果使用包含名称的封闭形状(例如矩形)显示实例规范,则值规范将显示在封闭形状内。
\n