意味

2017-09-08 20 views
2

先生がコマンド!)とを照会(?)を区別するためにUMLクラス図のメソッド名の前に感嘆符と疑問符を使用しています。意味

UML Class Diagram

これまで私がこれまで見たことがないように、実際には実際に使用されているかどうか、そして実際の意味は何か分かりません。

は基本的に、はを照会に対し、戻り値の型を持たないメソッドですコマンドはありますかメソッドですので、私は、これらのシンボルは、冗長であると考えています。さらに、私はこの記法について何もインターネット上で見つけることができませんでした。

私は本当に明確に感謝します。

+3

クエリやコマンドを分離することの意味(https://martinfowler.com/bliki/CommandQuerySeparation.html)を行いませんが、私はそれがあるとは思わないだろう、あなたの例では、 "公式の" UML記法。あなたのクラス/学校外の人々がこの表記法を知っていることを期待しないでください。 –

+0

@AnnaVopureta記事をありがとう! – Scriptim

答えて

2

これは公式の表記法ではありません。署名によって明白なものにプレフィックスを付けることは無意味であるという事実に加えて、それはその種の表記に慣れていない読者を混乱させるだけです。

+0

さて、それは私が期待した答えです。ありがとうございました! – Scriptim

2

Anna VopuretaとThomas Kilianが指摘したように、先生が使用する表記法は標準のUMLではありません。しかし、Anna Vopuretaが推奨するMartin Fowlerの記事で指摘されているように、Thomas Kilianの執筆には欠けています。純粋なクエリ(状態を変更しない)を表す戻り値を持つ操作/メソッドと、しないでください(州の変更のため)。

だから、私たちは3例に対処する必要があります。

  1. 戻り値のない操作/メソッドの戻り値を持つ
  2. 操作/メソッド
    1. は状態を変更しない状態を変更(純粋なクエリ)

UMLクラス図では、オペレーション宣言に中括弧で演算プロパティーqueryを追加することで、純粋な照会メソッドを表現できます。

正しい操作宣言は

+foo() 
+bar1(): int 
+bar2(): int {query}