完全に属性ではなく、完全にメソッドではありません。ステレオタイプ?<<get>>
<<set>>
?
私は既存のシステムをレトロモデリングしているので、これは読み取り専用フィールドまたはメソッドのペアと同じではないことを明確に反映する必要があります(ILの内容に関係なく)。したがって、ステレオタイプを使用すると思います。ただし、一般的な解決策として、言語に依存しないget_set_を受け入れます。健全性テストに感謝します。
完全に属性ではなく、完全にメソッドではありません。ステレオタイプ?<<get>>
<<set>>
?
私は既存のシステムをレトロモデリングしているので、これは読み取り専用フィールドまたはメソッドのペアと同じではないことを明確に反映する必要があります(ILの内容に関係なく)。したがって、ステレオタイプを使用すると思います。ただし、一般的な解決策として、言語に依存しないget_set_を受け入れます。健全性テストに感謝します。
私は通常、Visio で UML ダイアグラムを準備します (わかっています、わかっていますが、どうするつもりですか?)。
プロパティを図にすると、次のようになります。
+------------------------+
| MyClass |
|------------------------|
| - _foo : int |
|------------------------|
| «property» + Foo : int |
+------------------------+
«property» は、«operator» から派生したカスタム ステレオタイプです。
醜い、私は知っています。しかし、それは機能し、明らかです。コンストラクターも同じようにします。
プロパティは、通常のメソッド呼び出し (括弧を使用) ではなく、書き込みget_MyValue()
と代入を許可する便利な方法です。set_MyValue(value)
アクセスしているのは、実際には .NET プロパティです。C# には、これらにアクセスするための独自の構文があります。スキンの下で実際のメソッドget_
とset_
メソッドが作成されるため、これらのメソッドを簡単に表示できます (UML 言語を独立させるため - たとえば、UML を VB.NET 開発者に等しく適用できるようにするため)。
... または、あなたが提案したように、独自のステレオタイプを導入してください!
プロパティは、フィールドと同じ方法で表すことができます。読み取り専用や書き込み専用などの追加情報を指定するには、使用できます
+Name:string {READONLY}
えーと、疑似 UML ダイアグラムにメソッドとして挿入しただけです。:-)
プロパティは、いくつかの優れた構文でラップされた Get/Set メソッドです。それらをメソッドとして入れるか、新しいUML構文を作成してください:)
workmad3に同意します。プロパティは、get/setメソッドを少し良くするためのトリックにすぎません。そのため、2つの異なる方法で保存する必要があると思います。さらに、この場合、それらに異なるアクセス許可を設定できます
プロパティを 1 つのフィールドとして表現する際の問題は、2.0 フレームワークを使用する C# では、get と set 以外で異なるアクセス修飾子を使用できることです。
クラス図のフィールドに「プロパティ」と呼ばれるステレオタイプ (例: << プロパティ >> PropertyName) を使用できます。ステレオタイプは、UML 表記を拡張するために使用されます。
私はこのように使用します
-memberThePropertyWillExpose
+memberThePropertyIsExposing
まあ、これが正しい方法であれば、これについてのコメントは大歓迎です!!
Visio では、属性の <<readonly>> ステレオタイプを作成し、このステレオタイプを各読み取り専用属性に使用することができます。書き込み専用も同様。それはあなたに良い表記法を示します:
<<readonly>> +PropertyName : int
それについて醜いことは何もありません。標準の Visio の Changeable オプションは、視覚的な表現がなく、実際に各属性のプロパティを開いて確認する必要があり、印刷されたダイアグラムで確認する機会がないという点で、はるかに醜いです。