Como usar o padrão de delegação em Java
A herança é uma das grandes características de linguagens de programação orientada a objeto, como Java, mas não é a resposta para cada problema de programação. Além disso, francamente, muitos programadores Java usá-lo muito. Em muitos casos, simplesmente incluindo uma instância de uma classe de outra classe é mais fácil do que utilizando a herança. Esta técnica é às vezes chamado de padrão de delegação.
Suponha que você precisa criar uma classe chamada EmployeeCollection que representa um grupo de empregados. Uma maneira de criar esta classe seria estender uma das classes de coleção fornecidas pela API do Java, como o ArrayList classe. Em seguida, seu EmployeeCollection classe seria uma versão especializada da ArrayList classe e teria todos os métodos que estão disponíveis para o ArrayList classe.
Uma alternativa mais simples, no entanto, seria a de declarar um campo de classe do tipo ArrayList dentro do seu EmployeeCollection classe. Em seguida, você poderia fornecer métodos que utilizam esta ArrayList objeto para adicionar ou recuperar os funcionários da coleção.
Porque é que esta técnica chamada de delegação? Ao invés de escrever código que implementa as funções da coleção que você, delegar essa tarefa a um ArrayList objeto, porque ArrayList objetos já sabe como executar essas funções.