У меня есть следующий интерфейс:
public interface IRegisterable
{
T Register<T>(string username, string passw) where T : User, ICanLogin, new();
}
User
абстрактный класс, и ICanLogin
другой интерфейс.
Теперь, я хочу представить вышеупомянутый интерфейс с его методом в Диаграмме классов UML в Visio.
Как я могу представить вышеупомянутый общий метод с его ограничениями в Диаграмме классов?
UML не поддерживает параметрические методы типа.
О самых близких, которые вы получите, это определить вложенный класс, который имеет ограничения типа с стереотипом, который вы будете интерпретировать как означающее, что это параметр типа , и определяют операцию
с точки зрения того, что Отказ
+---------------------------------------------------+
| «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 Parametied Class в Visio http://etutorials.org/programming/uml/chapter+6.+ Класс + диаграммы + Advanced + концепции / параметризованные + класс /