Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Eu não entendi isso

Não entendi o por que usar ela e como usar kkk

1 resposta
solução!

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!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software