UML: classe interna in un diagramma di classe
-
04-07-2019 - |
Domanda
In un diagramma di classe, c'è un modo per specificare che una classe è una classe interna di un'altra classe?
O è considerata una pura scelta di implementazione?
Soluzione
Prendi in considerazione l'utilizzo di una relazione di nidificazione (una linea con un '+' in un cerchio all'estremità principale).
Altri suggerimenti
Poiché UML non dovrebbe essere direttamente specifico per l'implementazione, utilizzerei una convenzione di denominazione, come:
OuterClass vs OuterClass::InnerClass
Immagino che se speri di decodificare o generare codice in / da UML che strumenti diversi ci utilizzerebbero tecniche diverse (se supportano del tutto).
Un rapido test di alcuni reverse engineering usando Enterprise Architect (EA v7) conferma che usano la sintassi InnerClass :: OuterClass
sopra durante l'elaborazione di C # con una classe interna pubblica.
Per questo tipo di cose hai diagrammi separati che mostrano la struttura interna o l'elaborazione di una classe.
di solito, quei diagrammi extra sono diagrammi di attività per mostrare l'elaborazione. A volte uno per metodo. Potresti anche avere un diagramma di sequenza interno che mostra le interazioni dell'API.
Nessun motivo per cui non è possibile avere un diagramma di classe aggiuntivo per mostrare la struttura interna di una classe.
Oppure puoi mostrare la classe interna completamente racchiusa dalla classe esterna, un rettangolo all'interno di un altro.