
Prof. Ismael H. F. Santos
- ismael@tecgraf.puc-rio.br
2
Replace
Inheritance With Delegation (352)
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.