Quale rappresenta da vicino l'aggregazione?

1

So che l'aggregazione è una relazione has-a, ma ho riscontrato una domanda in un test che non aveva senso (e anche errori grammaticali)

Quale delle seguenti affermazioni descrive correttamente il concetto di aggregazione in OOP?

  • A Suddivisione di una classe in diverse sottoclassi
  • B Creazione di un pezzo di codice che funziona con tutti gli oggetti simili
  • C Accesso ai dati solo attraverso i metodi
  • D Combina diverse classi per creare una nuova classe
  • E Creazione di una nuova classe da una classe esistente

Penso;

  • A potrebbe essere vero.
  • B sembra un'eredità.
  • C sembra proprietà.
  • D potrebbe essere vero.
  • E potrebbe essere vero.

Non sono sicuro di come la relazione has-a si traduca in codice reale in queste dichiarazioni. Qualche idea?

    
posta Qash 04.06.2013 - 21:59
fonte

3 risposte

5
  1. L'aggregazione è una relazione di intera parte. E quindi è anche una relazione has-a.
  2. Per definizione gli oggetti della parte possono avere dei cicli di vita autonomi, indipendentemente dall'oggetto "intero".
  3. La composizione è un'aggregazione con una svolta. Aggiunge l'idea che le parti costitutive non possono / non possono / non dovrebbero esistere senza il tutto. Le parti non hanno alcun significato reale o funzionalità al di fuori del tutto. E viceversa il tutto è incompleto o non può funzionare correttamente senza le sue parti.
  4. A è sbagliato perché si tratta di un'eredità o di una composizione. Dipende da come tecnicamente leggiamo "sottoclasse". In ogni caso, la sua non è aggregazione.
  5. B è sbagliato, ovvero il polimorfismo, che implica l'idea di codifica per interfacce
  6. C è sbagliato, ovvero incapsulamento; nella sua forma pura direi. Usando una classe tramite ciò che fa - metodi - vice che accedono alle sue proprietà di stato.
  7. D è la migliore risposta
  8. E è sbagliato, semplicemente non soddisfa la definizione di aggregazione.
risposta data 04.06.2013 - 23:27
fonte
4

Hmm, basato su questa wiki , vorrei andare con D. Sembra che l'intento fosse quello di "Combinare più classi per creare una nuova classe", cioè includere diverse classi.

Chiarimento : Non sono sicuro però. È confuso perché la risposta può essere letta come l'opposto della sottoclasse. Dove uno prende un gruppo di sottoclassi e crea un oggetto mostro con tutte le sue proprietà. Nel qual caso tutte le proprietà vengono perse nella distruzione degli oggetti.

La mia lettura veloce:

  • A: sembra sottoclassifica
  • B: sembra Polimorfismo o qualcosa di simile
  • C: sembra proprietà
  • D:
  • E: sembra un'eredità
risposta data 04.06.2013 - 22:15
fonte
1

Penso che la risposta che vogliono sia " D - Combinare diverse classi per creare una nuova classe."

Aggregato significa raggruppa insieme ;

  • A1
  • A2
  • B1

aggregati;

  • A
    • 1
    • 2
  • B
    • 1
risposta data 04.06.2013 - 22:25
fonte

Leggi altre domande sui tag