[디자인 패턴의 아름다움] 인터페이스 분리 원칙

클라이언트는 필요하지 않은 인터페이스를 사용하도록 강요되어서는 안 된다.

인터페이스

  • API나 기능의 집합
  • 단일 API 또는 기능
  • 객체지향 프로그래밍의 인터페이스

API나 기능의 집합으로서의 인터페이스

아키텍처 설계 수준에서 인터페이스 인증을 통해 호출을 제한하는 것이 권장하는 솔루션이다. 호출자는 필요한 인터페이스에만 의존하고, 필요하지 않은 인터페이스에는 의존하지 않을 수 있으며, 결과적으로 인터페이스 분리 원칙을 만족시킬 수 있다.

마이크로 서비스의 인터페이스나 클래스 라이브러리 기능을 설계할 때, 인터페이스 또는 기능의 일부가 호출자 중 일부에만 사용되거나 전혀 사용되지 않는다면 불필요한 항목을 강요하는 대신, 인터페이스나 기능에서 해당 부분을 분리하여 해당 호출자에게 별도로 제공해야 하며, 사용하지 않는 인터페이스나 기능에는 접근하지 못하게 해야 한다.

단일 API나 기능으로서의 인터페이스

API나 기능은 가능한 한 단순해야 하며 하나의 기능에 여러 다른 기능 논리를 구현하지 않아야 한다. 인터페이스 분리 원칙에 따라 count() 메서드를 여러 개의 작은 단위 메서드로 분할해야 하며, 각각의 단위 메서드는 다른 함수를 포함하지 않는 독립적인 통계 기능을 제공해야 한다.

인터페이스 분리 원칙은 단일 책임 원칙과 다소 유사하다. 인터페이스 분리 원칙은 인터페이스에 단일 책임이 있는지 여부를 확인할 수 있는 방법을 제공하는데, 이는 호출자가 인터페이스를 사용하는 방식에 따라 간접적으로 결정된다. 호출자가 인터페이스의 일부 또는 그 기능의 일부만 사용하는 경우 해당 인터페이스 설계는 단일 책임 원칙을 충족하지 않는다고 말할 수 있다.

< 스터디에서 나온 이야기>

results matching ""

    No results matching ""