質問

私は、次のインタフェースを持ってます:

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 のパラメトリック・タイプをサポートする(他のものも同様にパラメータ化することができ、タイプ以外のものも同様にパラメータとして使用することができる)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top