본문
[2017.09.06] 03-4. OOP의 5대원칙 - ISP
컴퓨터/이론: 개발 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
'컴퓨터 > 이론: 개발' 카테고리의 다른 글
[2017.09.07] 20. String과 StringBuffer VS StringBuilder (0) | 2017.09.07 |
---|---|
[2017.09.06] 03-5. OOP의 5대원칙 - DIP (0) | 2017.09.06 |
[2017.09.06] 03-3. OOP의 5대원칙 - LSP (0) | 2017.09.06 |
[2017.09.06] 03-2. OOP의 5대원칙 - OCP (0) | 2017.09.06 |
[2017.09.06] 03-1. OOP의 5대원칙 - SRP (0) | 2017.09.06 |
댓글