SOLID 강의3

마음이편해·2022년 12월 8일

인터페이스 분리 원칙


  • 클라이언트가 사용하지 않는 메소드에 의존하도록 강요해서는 안된다.
  • 하나의 범용 인터페이스보다 클라이언트별 인터페이스가 많은것이 낫다.
  • 인터페이스 분리원칙을 설명한 두 문장
    - 인터페이스를 상속받은 클래스에서 사용하지 않는 함수도 인터페이스화 되어있어서 구현해야하는 상황을 피하라는 의미

예제코드

  • 잘못된 예

    - Shape인터페이스 선언부에서 사용하지 않는 함수도 강제로 작성되도록 draw함수가 선언되어 있음

  • 잘된 예

  • 위와같이 Draw관련된 인터페이스를 분리하여 선언

  • 도형관련 주제인 인터페이스인 Shape에서 draw관련된 인터페이스를 DrawCircleStrategy로 분리한다.
    이로써 Shape를 상속받는 클래스들은 draw하는 함수를 반드시 구현할 필요가 없어진다.


    인터페이스가 불필요한 종속성을 유발하지 않는지 확인하라.

  • 클래스의 단일책임의 원칙과 유사하게 인터페이스 또한 필요한 기능들만 상속받거나 구현하는 식으로 사용해야 함을 의미한다.

0개의 댓글