Diagramma di classe UML: l'oggetto aggregato può far parte di due classi aggregate?

1

Alcune fonti dicono che l'aggregazione significa che la classe possiede l'oggetto e condivide il riferimento. Diamo per scontato un esempio in cui una classe aziendale contiene un elenco di auto, ma i reparti di tale società hanno un elenco di auto utilizzate da loro.

class Department
{
   list<Car> listOfCars;
}

class Company
{
   list<Car> listOfCars;
   //initialization of the list
}

Quindi nel diagramma di classe UML, lo farei in questo modo. Ma suppongo che questo non è permesso perché implicherebbe che sia l'azienda che il reparto possiedono gli oggetti ..

[COMPANY]<>------[CAR]
[DEPARTMENT]<>---|        //imagine this goes up to the car class
    
posta John V 01.11.2013 - 12:55
fonte

1 risposta

1

Considera la differenza tra aggregazione e composizione!

Mentre in un'aggregazione possono esistere istanze di entrambe le classi associate senza una relazione (ad esempio un ristorante e una sedia), per una composizione l'una non può esistere senza l'altra (ad esempio un bambino senza un genitore).

Nel tuo caso un'aggregazione mi sembra più appropriata, e non è un problema modellare un'aggregazione tra Dipartimento, Automobile, Azienda e Auto.

Inoltre: una tale situazione è spesso modellata come Azienda < * > - Dipartimento < > - Car (dove solo il Dipartimento memorizza l'elenco delle auto).

    
risposta data 01.11.2013 - 14:00
fonte

Leggi altre domande sui tag