Princípio da segregação de interfaces
Nenhum cliente deve ser forçado a depender de métodos que não utiliza.
Onde podemos dizer que clientes são nossas classes e essas não devem depender de métodos que nunca vão utilizar.
Por exemplo:
Suponhamos que temos uma interface IBanhoPet com os métodos 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 métodos que a interface nos diz para implementar. Já a classe BanhoGato não precisa utilizar o método LimparAsas(), afinal, gatos não possuem asas. Porém também não podemos deixar de implementá-lo, pois uma interface é como um contrato que nos obriga a utilizar todos os seus métodos. Logo, estamos ferindo o princípio da segregação de interfaces.
Solução:
Criamos uma interface IBanhoGato que possui os métodos LimparPatas() e Secar() e outra IBanhoAve que possui os mesmos métodos da IBanhoGato com a adição do método 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();
}
Fácil, né!?
Top comments (0)