Prof. Ismael H. F. Santos
-ismael@tecgraf.puc-rio.br2
Replace
Inheritance With Delegation (352)
nNome: Replace
Inheritance with Delegation
nResumo: Quando
uma subclasse só usa parte da funcionalidade da superclasse ou não precisa herdar
dados: na subclasse, crie um campo para a superclasse, ajuste os métodos
apropriados para delegar
para a ex-superclasse e remova a herança.
nMotivação: herança é uma técnica excelente, mas
muitas vezes, não
é exatamente o que você quer. Às vezes, nós começamos herdando de uma outra classe mas
daí descobrimos que precisamos herdar muito pouco da superclasse.
Descobrimos que muitas
das operações da superclasse não se aplicam à subclasse. Neste caso, delegação é mais apropriado.