Posso avere due aggregazioni tra due classi?

2

Nota: questa domanda è diversa da Un diagramma di classe UML può mostrare due relazioni diverse tra due classi? che è circa due relazioni di diverso tipo.

Ho una classe Menu che contiene:

  • Un gruppo di bambini, che sono esempi di MenuItem di classe.

  • Un'istanza di una classe MenuItem che corrisponde a una voce di menu molto specifica (e non è necessariamente impostata per ogni istanza di Menu class.)

Come mi aspetto che rappresenti tale relazione? In altre parole, questa rappresentazione è corretta:

o dovrei rimuovere la seconda aggregazione come ridondante?

    
posta Arseni Mourzenko 11.09.2015 - 11:56
fonte

1 risposta

2

Nella tua descrizione, stai parlando di due modi in cui un'istanza Menu contiene% istanze diMenuItem: un insieme di elementi secondari e un elemento di personalizzazione separato.
Ciò implica che ci sono due relazioni separate, indipendenti tra Menu e MenuItem e che ognuna di esse svolge un ruolo importante nella progettazione.

Il tuo diagramma UML dovrebbe contenere tutte le relazioni necessarie per trasmettere le idee del tuo progetto. Se ometti una relazione qui, stai rimuovendo informazioni importanti dal tuo diagramma e probabilmente finirai con un software che non corrisponde a ciò che avevi intenzione di costruire.

La differenza principale qui con la domanda a cui ti sei collegato ( Un diagramma di classe UML può mostrare due relazioni diverse tra due classi? ) è che una delle relazioni (la nidificazione delle classi) può essere considerata come accessoria e non rappresenta un concetto di progetto principale. Tali relazioni accidentali possono essere omesse da un diagramma se esse creerebbero principalmente disordine.

    
risposta data 11.09.2015 - 13:09
fonte

Leggi altre domande sui tag