Objective-C и моделирование UML

Мы все знаем, что заголовки методов Objective-C несут больше информации, чем стандартные заголовки методов Java....

Это создает проблему при моделировании с использованием UML... Некоторые имена методов неконтролируемы довольно долго... Каков наилучший способ моделирования этих методов на диаграмме классов UML?

Можете ли вы сконденсировать имена методов или написать для них заголовок стиля Java?

Я делаю отчет для программной системы, и я застрял...

Ответ 1

Я думаю, что в некоторых случаях заголовки Objective-C несут меньше общей информации, но они могут более четко показать интерфейсы.

Например - использование современных Objective-C времени выполнения (для Mac OS и iOS) вам не нужно объявлять приватные iVars или частные методы в заголовках - они могут быть перенесены в категорию в файле реализации. Вы даже можете переопределять свойства как readwrite в реализации, где они объявлены как readonly в файле заголовка.

Это означает, что в классе происходит гораздо больше, чем показано в файлах заголовков, но общедоступные интерфейсы четко определяются отдельно от частной реализации - что хорошо в диаграмме UML.

Как для длинных имен методов - это часть соглашения Objective-C. Вы можете любить его или ненавидеть (я лично его люблю). Но с точки зрения написания их методы не показывают своих параметров. Например: предположим, что у вас есть метод, объявленный как:

- (NSString *)resultStringWithOptions:(NSDictionary *)options withCharacterSet(NSCharacterSet *)charSet error:(NSError **)error:

Фактическое имя этого метода:

resultStringWithOptions:withCharacterSet:error:

Коротко.