LSP(리스코프 치환 원칙) - 오리와 오리장난감은 진짜 LSP 위반일까?
LSP(Liskov Substitution Principle - 리스코프 치환 원칙) 서브타입은 언제나 자신이 기반타입 (base type) (상위 타입) 으로 교체할 수 있어야 한다. S-O-L-I-D로 유명한 다섯가지 객체지향 설계 원칙중에서 LSP는 '상속'에 관한 지침을 이야기 합니다. 오리와 오리장난감 LSP를 설명하는 유명한 예제로 오리와 오리장난감이 있습니다. 오리와 오리장난감이 유사한 점이 있다고 오리장난감이 오리를 상속받게 되면 LSP를 위반하게 된다는 예제입니다. 왜냐하면 오리장난감은 배터리가 있어야 제대로된 동작을 하기 떄문입니다. 만약 오리를 기대하던 클라이언트(사용자)에게 오리 대신 오리장난감을 쥐어준다면, 클라이언트는 자신이 원하는 행동을 기대하기 어렵습니다. 오리장난감은 기반타..
Design Pattern
2019. 11. 17. 18:49