솔리드 - ISP
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 dependser de métodos que nunca vão utilizar.
예를 들면:
Suponhamos que temos uma interface IBanhoPet com os metodos 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();
}
BanhoPardal 클래스는 인터페이스를 구현하는 데 필요한 작업을 수행하는 방법을 사용합니다. Classe BanhoGato는 LimparAsas() 메서드를 사용하는 정확한 유틸리티이며, 마지막으로 자산을 소유할 수 있습니다. 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. 로고, estamos ferindo o princípio da segregação de interface.
해결책:
Criamos uma 인터페이스 IBanhoGato는 LimparPatas() 및 Secar() 및 IBanhoAve 외부에서 IBanhoGato의 Mesmos Métodos da IBanhoGato와 LimparAsas()를 다른 인터페이스로 구현하는 nossas 클래스로 각각의 인터페이스를 구현합니다.
public interface IBanhoGato
{
void LimparPatas();
void Secar();
}
public interface IBanhoAve
{
void LimparAsas();
void LimparPatas();
void Secar();
}
당연하지!?
Reference
이 문제에 관하여(솔리드 - ISP), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/gbarbosa/solid-isp-31jh텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)