تمثل طريقة عامة في مخطط فئة UML
-
21-09-2019 - |
سؤال
لدي الواجهة التالية:
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 يفعل دعم أنواع البارامترية (يمكن أن يتم عرض أشياء أخرى أيضًا ، ويمكن استخدام أشياء أخرى غير الأنواع كمعلمات أيضًا).