Aplicando os principios SOLID com AdvPL/TL++ ( Parte 4 — SRP )

Eduardo Riera
TOTVS Developers
Published in
2 min readJun 1, 2018

Interface Segregation Principle

"Clients should not be forced to depend on methods that they do not use"

Este princípio está relacionado ao Princípio da Responsabilidade Única, que vimos na primeira parte da série dos princípios SOLID.

Mas o que isto significa? Significa que ao projetar abstrações, não devemos impor aos clientes o ônus de implementar métodos que eles realmente não precisam.

Interface Report()
Method Gerar()
Method ListaImpressoras()
EndInterface

Observando o exemplo da Interface acima, ela parece correta, quando pensamos em uma implementação da classe para geração de relatórios que utiliza impressoras. Porém, se a saída for um arquivo, ela além de não parecer elegante, provoca ao cliente, implementar um método que não irá utilizar.

Mas qual o problema de implementar um método que ele não irá utilizar? Suponhamos que será necessário evoluir a Interface, nesta evolução o método que não é utilizado, passa a receber parâmetros. Agora criamos uma armadilha, uma vez será necessário distribuir todo o código que utiliza esta interface, mesmo que, o método alterado não seja utilizado.

Desta forma, o com a utilização deste principio, esta distribuição adicional poderá ser evitada, deixando o produto final mais estável!

Agora a pergunta, o AdvPL possui interface? A resposta é não, porém o TL++ incorporou o uso de interfaces, possibilitando o uso deste principio.

Veja como utilizar em http://tdn.totvs.com/display/tecen/Interface

--

--

Eduardo Riera
TOTVS Developers

Software engineer, ERP specialist and enthusiast technology, helping companies in the era of digital transformation.