컴퓨터/이론: 개발
[2017.09.06] 03-4. OOP의 5대원칙 - ISP
heepie
2017. 9. 6. 20:10
4. ISP - Interface Segregation Principle
(출처 - https://en.wikipedia.org/wiki/SOLID_(object-oriented_design)#cite_note-martin-design-principles-8)
특화된 여러 개의 인터페이스가 하나의 범용 인터페이스보다 낫다. (유연하다.)
실습
ISP 원칙 적용 전 | ISP 원칙 적용 후 | ||||||
|
|
예제처럼 범용적인 IBird이라는 인터페이스를 Penguin에서 구현하면 fly(), eat(), chirp() 메소드를 모두 구현해야 한다.
그러나 범용적인 IBird 인터페이스 구현으로 Penguin의 날지 못하고 수영할 수 있는 특성을 표현 할 수 없다.
그래서 특화된 3개의 인터페이스(Flyable, Eatable, Chirpable)로 분리하면 원하는 인터페이스를 유연하게 구현 할 수 있다.
장점
a. 확장, 유지보수에 유연하게 대처할 수 있다.
#ISP #SOLID #JAVA SOLID #JAVA OOP