2015-01-14 15:39 GMT+00:00 Carlos Catucci <carlos.catu...@gmail.com>:
> Nel tuo caso il problema non si pone, ma รจ l'approccio ad essere sbagliato. > > > A prescindere che ho usatto un caso al volo, ma dove sarfebbe l'errore? Se > entrambe implementano dei metodi differenti, non ci sarebbero conflitti. > Diciamo che e' un esempio da manuale di come non andrebbe usata l'ereditarieta'. E' anche un esempio da manuale di come la insegnavano i libri negli anni 90 (e purtroppo tutt'ora). Esempio tipico Deitel&Deitel... Tu stai usandola per sostituire un meccanismo di semplice composizione. Ovviamente da un punto di vista sintattico funziona. Il tuo codice funziona. Ma non ti rendi conto del numero di vincoli impliciti che stai introducendo senza alcun beneficio. Come diceva Manlio, una bolla *contiene* i due oggetti sopra menzionati. Ora, per facilita' di ragionamento... supponi che vuoi fare una bolla a qualcuno che non vive in Italia. Supponi anche che, sempre per fare buona OOP, tu ti trovi che in effetti l'implementazione di un'Anagrafica Clienti per qualcuno che non e' italiano e' implementata con una classe diversa (diverse business rules, diversi campi, boh). Ecco che cominci ad avere un problema. Viceversa, siccome il comportamento esterno di un'anagrafica clienti e' sempre lo stesso, se usi composizione semplicemente ci plugghi dentro quella giusta, ma non ti esplodono le classi. Allo stesso modo il Catalogo clienti... Ora capiscimi, io conosco poco il dominio business di cui stiamo parlando. Quindi potresti contestare l'esempio specifico. Oppure potresti dirmi che no, non ha nessun senso avere piu' classi per un'anagrafica clienti. Ma attenzione che se gia' hai una roba tipo if self.codice_fiscale is None and self.is_a_bloody_foreigner: hai gia' un buon motivo per avere una classe a parte. Per intenderci. -- . ..: -enrico-
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python