UMLクラス図ではC#ジェネリックメソッドを表します
-
21-09-2019 - |
質問
私は、次のインタフェースを持ってます:
public interface IRegisterable
{
T Register<T>(string username, string passw) where T : User, ICanLogin, new();
}
User
抽象クラスであり、そしてICanLogin
が別のインターフェースである。
今、私は、VisioでUMLクラス図ではその方法、と上記のインタフェースを表現したいです。
どのように私はクラス図ではその制約に上記の一般的な方法を表すことができますか?
解決
UMLを直接タイプパラメトリック法をサポートしていません。
あなたが買ってあげる最も近いについてあなたはそれが型パラメーターの意味するものとして解釈するステレオタイプを持つ型制約を持つ入れ子になったクラスを定義し、その面でRegister
操作を定義することです。
+---------------------------------------------------+
| «interface» |
| IRegisterable |
+---------------------------------------------------+
| + Register (string username, string passw) : T |
+---------------------------------------------------+
+---------------+ +---------------+
| «abstract» | | «interface» |
| User | | ICanLogin |
+---------------+ +---------------+
. .
/_\ /_\
| .
+-----------+ .............
| .
+-------------------+
| «typeParameter» |
| IRegisterable::T |
+-------------------+
| + new() |
+-------------------+
note: T is a nested class within IRegisterable
他のヒント
ジェネリッククラスは、UMLでテンプレートクラスであります テンプレートクラスを表現するための正しい方法は何ですか見ますUMLと?の
だから、あなたはVisioでTHYEパラメータ化されたクラス<のhref = "http://etutorials.org/Programming/UML/Chapter+6.+Class+Diagrams+Advanced+Concepts/Parameterized+Class/" relが使用できません。 = "nofollowをnoreferrer"> http://etutorials.org/Programming/UML/Chapter+6.+Class+Diagrams+Advanced+Concepts/Parameterized+Class/ の
UMLの DOES のパラメトリック・タイプをサポートする(他のものも同様にパラメータ化することができ、タイプ以外のものも同様にパラメータとして使用することができる)。
所属していません StackOverflow