[Computer Science] SRP.. LSP..?
Computer Science2021.08.01
SRP (단일 책임 원칙)
- 클래스는 단 한 개의 책임을 가져야 한다.
- 클래스가 변경되는 이유는 단 한 개여야 한다.
- 단일 책임 원칙에 위배된다면?
- 함수 또는 클래스가 두 가지 이상의 기능을 가지고 있다면 함수 로직을 파악하는데 그만큼 시간이 걸리게 된다. (가독성이 떨어짐)
- 한가지 기능만 수행했을 경우에 비해 상대적으로 버그가 발생할 확률이 높아진다. (유지보수가 힘듦)
LSP (리스코프 교환 원칙)
- 서브 타입(자식 클래스) 은 언제나 자신의 기반타입(부모 클래스) 으로 교체 할 수 있어야 한다.
- 클래스 인 경우, 하위 클래스 라면 상위 클래스의 한 종류여야 한다.
- 인터페이스 인 경우, 구현 클래스는 인터페이스(규약) 를 지켜야한다.
- 리스코브 치환 원칙 논문 내용 중..
- 하위형에서 선행조건은 강화될 수 없다.
- 하위형에서 후행조건은 약화될 수 없다.
- 하위형에서 상위형의 불변조건은 반드시 유지되어야 한다.
