Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
March 25, 2022 01:36 am GMT

SOLID - ISP

Princpio da segregao de interfaces

Nenhum cliente deve ser forado a depender de mtodos que no utiliza.

Onde podemos dizer que clientes so nossas classes e essas no devem depender de mtodos que nunca vo utilizar.

Por exemplo:

Suponhamos que temos uma interface IBanhoPet com os mtodos LimparPatas(), LimparAsas() e Secar() e criamos uma classe BanhoPardal e outra BanhoGato que implementam essa interface.

public interface IBanhoPet{    void LimparAsas();    void LimparPatas();    void Secar();}

A classe BanhoPardal utiliza todos os mtodos que a interface nos diz para implementar. J a classe BanhoGato no precisa utilizar o mtodo LimparAsas(), afinal, gatos no possuem asas. Porm tambm no podemos deixar de implement-lo, pois uma interface como um contrato que nos obriga a utilizar todos os seus mtodos. Logo, estamos ferindo o princpio da segregao de interfaces.

Soluo:

Criamos uma interface IBanhoGato que possui os mtodos LimparPatas() e Secar() e outra IBanhoAve que possui os mesmos mtodos da IBanhoGato com a adio do mtodo LimparAsas() e as nossas classes implementam as suas respectivas interfaces.

public interface IBanhoGato{    void LimparPatas();    void Secar();}
public interface IBanhoAve{    void LimparAsas();    void LimparPatas();    void Secar();}

Fcil, n!?


Original Link: https://dev.to/gbarbosa/solid-isp-31jh

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To