Come posso capire l'aggregazione e il contenimento?

0

Sono confuso tra aggregazione e contenimento. Mi chiedo se quanto segue rappresenti un'aggregazione o un contenimento?

class Auto 
{

   private string model;
   private int speed;

     class AutoCustomer
     {
        public string LastName;
        public string Address;
        public DateTime DateOfPurchase;
     }
}
    
posta Lamees 11.01.2013 - 01:44
fonte

3 risposte

1

Il modo di comprendere l'aggregazione contro il contenimento è l'associazione contro la proprietà. Un'auto "ha" un motore? Sì, non sarebbe un'auto senza di essa (nella maggior parte delle situazioni). Un frutto "ha" frutta? Sì; anche se nella ciotola ci sono attualmente zero frutti.

L'auto "ha" un cliente? No. Il concessionario "ha" un cliente-forse-e il concessionario "ha" macchine. Il concessionario potrebbe desiderare di associare un cliente con un'automobile a cui è interessato, ma l'auto non possiede quel cliente.

    
risposta data 05.02.2013 - 10:48
fonte
1

Una buona cartina tornasole per l'aggregazione e la composizione ti stai chiedendo se eliminerai l'oggetto figlio quando cancellerai l'oggetto genitore.

Quando non hai più bisogno di Auto, hai ancora bisogno dell'AutoCustomer a cui fa riferimento? Quando lo fai, hai un caso di aggregazione. Quando non ne hai bisogno, hai un caso di composizione.

    
risposta data 05.02.2013 - 20:57
fonte
0

Se la tua classe Auto avrà un riferimento alla classe AutoCustomer , allora questo rappresenta un esempio di Aggregazione , poiché la classe Auto NON PROPRIA l'istanza AutoCustomer .

Ma è abbozzato .. poiché i membri di dati di AutoCustomer sono così specifici che potrebbe implicare la proprietà del tutto, il che significa che è solo una composizione di vaniglia.

    
risposta data 11.01.2013 - 02:24
fonte

Leggi altre domande sui tag