我目前正在为OCUP UML基础考试学习。在阅读这本书时,我发现了一些关于操作的奇怪之处。
操作的语义
[visibility] name (parameter list)[:type][{property strings}]
现在有以下的例子:
- getPoistion(return x: int, return y: int)
- enlarge(byFactor: Real) : GeomFigure
- +addPhone(phone:String)
- deposit(in amount, Amount): Amount
- #release(): contractStatus
- "create"create()
最后一个我觉得很奇怪。有人能解释一下为什么这是允许的吗?因为名称之前唯一允许的语义是可见性修饰符。
亲切的问候,
Wim
你所引用的http://issuu.com/maurosergio/docs/uml_2_certification_guide_-_fundamental_and_interm书中第49页第2.2.11章操作也说
. .符号和语义…操作的语法…符号应该是这样的…
符号不定义/限制操作的语义。它指定了通用的有用语法。
"创建"消息在UML中具有特殊的行为意义(不知道您正在阅读的书中在哪里解释了它)。例如,看这里http://www.uml-diagrams.org/sequence-diagrams.html,在图中看到<<create>>
原型,在后面的文本中看到create
消息。
也可以参见"对象创建消息"章节http://www.uml-diagrams.org/uml-object-oriented-concepts.html#message
Kirill Fakhroutdinov的在线书籍www.uml-diagrams.org是作者从官方来源(UML规范)和其他背景非UML来源和一些"常识"编译的非常好的UML参考。
浏览这本书可能是准备考试的更容易的方法,或者至少可以把它作为另一种阅读方式。许多"可视化"的例子包括
欢迎来到Stack Overflow也可以阅读https://stackoverflow.com/help/someone-answers
你到底是从哪里找到这个例子的?它看起来确实不正确,而且绝对不符合上面所述的正式表达式。
这些是UML规范的最后一个版本的例子,所有的都很好:
9.6.5 Examples Normal Operations: display () -hide () +createWindow (location: Coordinates, container: Container [0..1]): Window +toString (): String A template Operation: f <T:Class>(x : T) A binding of that template Operation. f << T -> Window >>(x : Window) NOTE. Parameters may be suppressed; .
如果你从一个非正式的来源中取了一个例子,这显然是一个错误。我会忘记的。:)