2016-05-29 3 views
3

Кажется разумным использовать UML-интерфейсы для визуализации Swift-протоколов в UML. Но как я должен визуализировать расширение, которое обеспечивает реализацию по умолчанию для определенного протокола? Должен ли я просто использовать класс, подобный <<extension>>ProtocolName, который наследуется от этого протокола?Как визуализировать протоколы и расширения в UML?

+0

Возможно [этот вопрос и ответы] (http://stackoverflow.com/questions/3686210) могут вас заинтересовать, см. В частности [@Klaim: s answer] (http://stackoverflow.com/a/3686405/ 4573247). – dfri

ответ

2

Расширение существует в рамках определенного класса и просто добавляет некоторые функции к нему. Поэтому я бы представил расширение как подкласс (в конечном итоге упаковка может быть предпочтительной). Чтобы показать, что это расширение, я бы использовал стереотип. Зависимость от расширяемого класса несколько необязательна, поскольку в контексте это соглашение об именах.

enter image description here

Если расширение будет дополнительно придерживаться какой-то протокол просто добавить реализации отношения к классам согласно интерфейса.

Это один из способов выразить это. Поскольку для расширения нет встроенной конструкции UML, вы относительно свободны придумывать здесь свою идиому.

Смежные вопросы