Ereditarietà o composizione?

1

Diciamo che ho una classe principale A e un'altra classe B.
Nella classe B l'utente può modificare alcune impostazioni e variabili del programma che appartiene ad A, voglio poter applicare queste modifiche alla classe A, dovrei usare l'ereditarietà e applicare le modifiche al padre di B che è A o dovrei usare la composizione e passare l'istanza di A alla classe B e cambiare le variabili di A in questo modo?
qual è la migliore pratica e perché?
nota: se aiuta in ogni caso, sto scrivendo un'applicazione gui e A è la mia finestra principale e B è una finestra di impostazione aperta da A.

    
posta Amen 03.04.2015 - 21:50
fonte

1 risposta

10

L'ereditarietà è "è-a", la composizione è "ha-a". È il caso che "un B è-un A", o è il caso che "un B ha-un A per qualche ragione"?

È ovvio che finestra di impostazione non è una finestra principale , ma è un attore esterno. Quindi dovrebbe avere un A passato.

EDIT: Poiché hai detto cosa sono A e B, ovvero windows, dovresti separare il dominio dalla presentazione; cioè, nemmeno B dovrebbe essere passato ad A (no, quelle sono solo viste), ma il modello di B dovrebbe essere passato al modello di A. Ma trattalo come una nota aggiuntiva, dato che la domanda originale riguardava l'ereditarietà rispetto alla composizione.

    
risposta data 03.04.2015 - 22:22
fonte