ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바 - ISP (Interface Segregation Principle, 인터페이스 분리 원칙)
    Java 2023. 11. 22. 22:15

    핵심개념: '인터페이스 분리 원칙(Interface Segregation Principle, ISP)은 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 않아야 한다는 원칙입니다.'

    인터페이스 분리 원칙(Interface Segregation Principle, ISP)은 클라이언트가 필요하지 않은 메서드에 의존하지 않아야 함을 의미합니다. 이 원칙은 클라이언트가 필요로 하는 메서드만을 가진 인터페이스를 구현하도록 권장하며, 이를 통해 불필요한 의존성을 줄이고 모듈 간의 결합도를 낮출 수 있습니다.

    자세한 설명:

    ISP는 '클라이언트에게 필요한 것만 제공해야 한다'는 원칙입니다. 클라이언트가 사용하지 않는 메서드에 의존하면, 그 메서드에 변화가 생겼을 때 클라이언트에도 영향을 줄 수 있습니다. 따라서 클라이언트는 자신이 필요로 하는 메서드만을 가진 인터페이스에 의존해야 합니다.

    이 원칙을 따르면, 시스템의 유연성과 재사용성이 향상됩니다. 또한, 시스템의 각 부분을 독립적으로 개발하고 변경할 수 있으므로, 코드의 유지보수성이 향상됩니다.

    예시:

    예를 들어, '인쇄기'라는 인터페이스가 있고, 이 인터페이스에는 '흑백 인쇄', '컬러 인쇄' 두 가지 메서드가 있다고 가정해봅시다. 그런데 '흑백 인쇄기'라는 클래스는 '흑백 인쇄' 기능만 필요로 합니다. 이 경우, '흑백 인쇄기' 클래스는 '흑백 인쇄' 메서드만을 가진 인터페이스를 구현하도록 변경하여 ISP를 따르도록 해야 합니다.

    샘플 코드:

    // ISP를 따르지 않는 경우
    interface Printer {
        void printBlackAndWhite();
        void printColor(); // '흑백 인쇄기' 클래스가 필요로 하지 않는 메서드
    }
    
    class BlackAndWhitePrinter implements Printer {
        @Override
        void printBlackAndWhite() { ... }
    
        @Override
        void printColor() { ... } // 필요하지 않은 메서드를 구현해야 함
    }
    
    // ISP를 따르는 경우
    interface BlackAndWhitePrinter {
        void printBlackAndWhite();
    }
    
    class BlackAndWhitePrinter implements BlackAndWhitePrinter {
        @Override
        void printBlackAndWhite() { ... } // 필요한 메서드만 구현
    }

    이처럼 인터페이스 분리 원칙을 이해하고 적용하면, 코드의 유연성과 재사용성을 향상시킬 수 있습니다.

    댓글

Paycis's