سؤال

لدي الواجهة التالية:

public interface IRegisterable
{
   T Register<T>(string username, string passw) where T : User, ICanLogin, new();
}

User هو فئة مجردة ، و ICanLogin هي واجهة أخرى.

الآن ، أريد أن أمثل الواجهة أعلاه مع طريقتها في مخطط فئة UML ، في Visio.

كيف يمكنني تمثيل الطريقة العامة أعلاه مع قيودها في مخطط الفصل؟

هل كانت مفيدة؟

المحلول

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؟

لذلك لا يمكنك استخدام فئة Thye المعلمة في Visio http://etutorials.org/programming/uml/chapter+6.+class+diagrams+advanced+Concepts/Parameterized+Class/

UML يفعل دعم أنواع البارامترية (يمكن أن يتم عرض أشياء أخرى أيضًا ، ويمكن استخدام أشياء أخرى غير الأنواع كمعلمات أيضًا).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top