취미처럼

[DP] ISP 본문

Design Pattern

[DP] ISP

sirius 2021. 3. 19. 09:55

 ISP ( Interface Segregation Principle ) - 인터페이스 분리 원칙

 

자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다는 설계 원칙이다.

즉, 하나의 거대한 인터페이스 보다는 여러 개의 구체적인 인터페이스가 낫다는 것을 의미한다.

SRP는 객체의 단일 책임을 뜻한다면, ISP는 인터페이스의 단일 책임을 의미한다.

 

예를 들어, 핸드폰( Phone )에는 전화( call ), 문자( sms ), 알람( alarm ), 계산기( calculator ) 등의 기능이 있다.

옛날 3G폰과 현재 스마트폰은 Phone의 기능들을 사용하므로, call, sms, alarm, calculator 기능이 정의된 Phone 인터페이스를 정의하려고 한다.

 

 

그러나 ISP를 만족하려면 Phone 인터페이스에 call(), sms(), alarm(), calculator() 함수를 모두 정의하는 것보다,

Call, Sms, Alarm, Calculator 인터페이스를 각각 정의하여, 3G폰과 스마트폰 클래스에서 4개의 인터페이스를 구현하도록 설계되어야 한다.

 

 

이렇게 설계를 하면, 각 인터페이스의 메서드들이 서로 영향을 미치지 않게 된다.

즉, 자신이 사용하지 않는 메서드에 대해서 영향력이 줄어들게 된다.

 

'Design Pattern' 카테고리의 다른 글

[DP] 싱글톤 패턴  (0) 2021.03.19
[DP] DIP  (0) 2021.03.19
[DP] LSP  (0) 2021.03.18
[DP] OCP  (0) 2021.03.18
[DP] SRP  (0) 2021.03.18
Comments