Olá desenvolvedores, hoje vamos estudar o método interface com parâmetros. No tutorial passado implementamos a classe interface, declaramos o método no escopo da classe, e o implementamos na “classe Secretario”. A partir da qual começamos a desenhar a implementação da permissão de acesso.

Hoje, implementaremos o mesmo procedimento, porém, de uma forma distinta da anterior. Podemos ser ainda mais específicos em nossas definições. Recapitulando, anteriormente nós havíamos instanciado a classe secretário.

Secretario secretario = new Secretario();

O modo como fizemos acima não está errado, mas podemos fazer ainda melhor. Podemos dizer ao sistema de forma enfática quem de fato implementará a interface. Veja abaixo como podemos fazer isso:

PermitirAcesso secretario = new Secretario();

Mas há um porém, essa permissão ainda mais restrita tem um custo. Isto é, não conseguiremos mais “setar” dados dos atributos, uma vez que não temos mais os métodos setters e getters. Além do mais, agora a primeira referência é para a interface.

A forma como implementamos também terá seu custo quando da integração com um banco de dados, gerando classes que não são necessárias. Levando então a uma quebra do sistema.

Mas se não conseguimos mais referenciar os métodos setters e getters, como proceder então?

É importante que você saiba que o modo como estamos implementando agora celebra uma forma de contrato ainda mais rígida. Que leva em consideração uma arquitetura robusta, esta implementação possibilita uma espécie de blindagem de uma possível quebra do sistema.

Dessa forma, login e senha serão passados como parâmetros do método autenticar() que está sendo chamado na estrutura de seleção if.  E se não temos mais acesso aos métodos setters e getters, não precisamos mais das linhas de código abaixo:

secretario.setLogin(login);
secretario.setSenha(senha);

IMPLEMENTANDO MÉTODO COM PARÂMETROS

Na classe PermitirAcesso iremos declarar um novo método autenticar(). É claro que não é permitido dois métodos iguais, mas se um deles distinguir na quantidade de parâmetros, ele já será considerado diferente.

public boolean autenticar(String login, String senha);

Feita esta implementação a classe Secretario reclamará também a implementação do mesmo.

Após a adição do método podemos permanecer apenas com o último método autenticar() adicionado. Logo o mesmo também não precisa mais constar na interface. Assim como também não precisamos mais dos atributos de login e senha declarados na classe Secretario e seus respectivos setters e getters.

EM POUCAS PALAVRAS

Todas essas alterações resultaram em um código mais enxuto, consistente e performático, com uma implementação de validação de acesso ainda mais segura. Sem alterar demais a estrutura do método que ficou como exemplificamos abaixo:

Mas podemos enxugar ainda mais nosso código passando para a instrução da estrutura de seleção if a criação do novo objeto.

Então é isso espero que tenham gostado. Implementamos um novo método de interfaces com parâmetros, que nos permite ser ainda mais rígidos quanto a permissão de acesso. Bom, nos vemos no próximo tutorial onde trabalharemos com a implementação de interfaces e construtores. E onde implementaremos o acesso também para o diretor. Nos vemos lá.