LSP
Liskov Substitution Principle
리스코프 대체 원칙의 개요
리스코프 대체 원칙의 정의
객체지향 5대 원칙(SOLID) 중 하나로 기반 클래스는 서브 클래스로 대체되는 IS-A 관계가 성립해야 한다는 원칙
리스코프 대체 원칙의 전제조건
- Pre-Condition: Base class 보다 조건이 까다로운 pre-condition이 있으면 안됨
- Post-Condition: Base class 보다 조건이 부족한 post-condition이 있으면 안됨
- Derived method는 Base method와 동일해야 함
리스코프 대체 원칙의 설계 원칙
IS-A 관계에 대한 경험적 설계 법칙
- 만약 Base 클래스와 Derived 클래스가 똑같은 일을 한다면 구분 필드 이용한 클래스로 표현
- 똑같은 연산을 제공하지만, 이들을 약간씩 다르게 구현한다면 공통의 인터페이스를 만들고 이를 구현
- 공통된 연산이 없다면 완전 별개인 2개의 클래스를 생성
- 만약 Derived 클래스가 추가적으로 무언가를 더 구현한다면 구현 상속을 사용