Composição x Herança. Qual dar preferência ?

Nos softwares desenvolvidos é verdade que se dá preferência a composição do que a herança de classes na modelagem ?

De verdade o que vale é a modelagem do banco, geralmente relacional, então sua classe vai ser espelho disso.

Sempre dê preferência a composição, pois o acoplamento eh menor que com herança. Se a classe A estende de B sempre haverá um acoplamento direto entre elas, enquanto que se a classe B contem (eh composta) a classe A eventualmente vc pode trocar A por C, contudo isso não eh possível com herança, pois “quebraria” a árvore de classes.

1 curtida

Entendi.

Particularmente gosto muito de utilizar herança de interfaces e realizar a implementação delas através de composição de classes, conforme o colega @michaeldasilvases explicou.
Dá um pequeno trabalho no início, mas facilita muito a manutenção e, por utilizar interfaces, não quebra o contrato da modelagem.