Lição 6: Composição em vez de herança
public class Car : Engine parece um atalho conveniente — até você descobrir que todo método do motor vaza para o carro, toda mudança no motor quebra o carro, e um carro com dois tipos de motor se torna impossível. Nesta lição vamos trocar a herança por um campo: o carro vai ter um motor em vez de se
Composição é como uma caixa de ferramentas: em vez de nascer um 'homem-martelo', um profissional segura um martelo e o troca quando precisa. Herança solda o martelo à mão para sempre.
- composição em vez de herança
- Quando a relação real é 'tem um', mantenha o objeto como um campo privado e delegue a ele — em vez de herdar e arrastar uma hierarquia frágil e uma API que vaza.
- relação 'tem um' (has-a)
- Uma relação em que um objeto mantém outro objeto como campo e o usa — em oposição a is-a, em que uma classe herda e alega ser um tipo de sua base.