Não entendi o por que usar ela e como usar kkk
Não entendi o por que usar ela e como usar kkk
Oi, Victor, tudo bem?
A delegation
é um padrão de design que permite reutilizar código ao invés de escrevê-lo novamente. No exemplo que você mencionou, a classe Conta
está implementando a interface Autenticavel
e precisa delegar a responsabilidade de autenticação para o titular da conta, que é uma instância da classe Cliente
.
No exemplo dado, a implementação da autenticação na classe Conta
é feita através do método autentica(senha: Int)
. Esse método simplesmente chama o método autentica(senha: Int)
do titular da conta. Ou seja, a classe Conta
não precisa se preocupar em implementar a lógica de autenticação, ela apenas delega essa responsabilidade para o titular.
A delegação de propriedade no Kotlin permite simplificar ainda mais esse código. Em vez de declarar a propriedade titular
como uma variável var
, podemos declará-la como uma propriedade val
e utilizar a sintaxe : Autenticavel by titular
. Isso significa que a implementação da interface Autenticavel
será delegada para a propriedade titular
.
Dessa forma, não precisamos mais escrever o método autentica(senha: Int)
na classe Conta
, pois a implementação já está sendo delegada para o titular.
abstract class Conta(
val titular: Cliente,
val numero: Int
) : Autenticavel by titular
Espero ter ajudado. Caso tenha dúvidas, conte com o fórum. Abraços!