An Interest In:
Web News this Week
- April 2, 2024
- April 1, 2024
- March 31, 2024
- March 30, 2024
- March 29, 2024
- March 28, 2024
- March 27, 2024
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
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To