솔리드 - ISP

2338 단어 ooppoosolid
인터페이스 분리 원칙

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();
}


당연하지!?

좋은 웹페이지 즐겨찾기