2011-09-15 3 views
10

Nous savons tous les en-têtes de méthode Objective-C portent plus d'informations que les en-têtes de méthode Java standard ....Objective-C et modélisation UML

Cela pose un problème lors de la modélisation avec UML ... Certains noms de méthode sont tout à fait de façon incontrôlable long ... quelle est la meilleure façon de modéliser ces méthodes clairement dans un diagramme de classes UML?

Pouvez-vous condenser les noms de méthodes, ou écrire un en-tête de style Java pour eux?

Je fais un rapport pour un système logiciel et je suis coincé ...

Répondre

4

Je pense que dans certains cas, les en-têtes Objective-C portent moins d'informations dans l'ensemble, mais ils peuvent montrer plus clairement les interfaces. Par exemple - Avec les runtimes d'Objective-C modernes (pour Mac OS et iOS), vous n'avez pas besoin de déclarer les iVars privés ou les méthodes privées dans les en-têtes - ils peuvent être déplacés vers une catégorie dans le fichier d'implémentation. Vous pouvez même redéclarer les propriétés comme readwrite dans l'implémentation où elles sont déclarées readonly dans le fichier d'en-tête. Cela signifie qu'il se passe beaucoup plus de choses dans une classe que dans les fichiers d'en-tête, mais les interfaces publiques sont clairement définies séparément de l'implémentation privée - ce qui est une bonne chose dans un diagramme UML. Comme pour les noms de méthode longs, cela fait partie de la convention d'Objective-C. Vous pouvez l'aimer ou le détester (je l'aime personnellement). Mais en termes d'écriture, les méthodes ne montrent pas leurs paramètres. Par exemple: supposons que vous avez une méthode déclarée comme:

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

Le nom réelle de cette méthode est la suivante:

resultStringWithOptions:withCharacterSet:error: 

Ce qui est plus courte.

+0

Vous avez un point, mais les diagrammes de classes peuvent être déroutants et parfois des types doivent être inclus pour aider à clarifier la fonctionnalité et l'architecture d'un système. Dans ce cas, le nom de la méthode devient beaucoup plus long, en particulier pour les méthodes avec plus de 2 arguments! – user559142