2011-09-15 18 views
10

Sappiamo tutti Objective-C Metodo intestazioni trasportare più informazioni rispetto metodo intestazioni standard di Java ....Objective-C e Modellazione UML

Questo pone un problema quando si utilizza la modellazione UML ... Alcuni nomi dei metodi sono abbastanza incontrollabile a lungo ... qual è il modo migliore per modellare chiaramente questi metodi in un diagramma di classe UML?

È possibile condensare i nomi dei metodi o scrivere per loro un'intestazione di stile Java?

sto facendo un rapporto per un sistema software e io sono bloccato ...

risposta

4

Penso che in alcuni casi le intestazioni Objective-C trasportano meno informazioni nel complesso, ma possono mostrare le interfacce in modo più chiaro.

Ad esempio: utilizzando i moderni runtime Objective-C (per Mac OS e iOS) non è necessario dichiarare iVar privati ​​o metodi privati ​​nelle intestazioni, che possono essere spostati in una categoria nel file di implementazione. È anche possibile ridichiarare le proprietà come readwrite nell'implementazione in cui sono dichiarate come readonly nel file di intestazione.

Ciò significa che c'è molto di più in corso in una classe rispetto a quanto mostrato nei file di intestazione, ma le interfacce pubbliche sono chiaramente definite separatamente dall'implementazione privata - che è una buona cosa in un diagramma UML.

Come per i nomi di metodi lunghi, fa parte della convenzione di Objective-C. Puoi amarlo o detestarlo (personalmente lo amo). Ma in termini di scrittura, i metodi non mostrano i loro parametri. Per esempio: si supponga di avere un metodo dichiarato come:

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

L'attuale nome di questo metodo è:

resultStringWithOptions:withCharacterSet:error: 

che è più breve.

+0

Si dispone di un punto, tuttavia i diagrammi delle classi possono creare confusione e talvolta devono essere inclusi tipi per aiutare a dare chiarezza sulla funzionalità e l'architettura di un sistema. In tal caso il nome del metodo diventa molto più lungo, specialmente per i metodi con più di 2 argomenti! – user559142