9장 LSP 리스코프 치환 원칙 - ChoDragon9/posts GitHub Wiki

LSP: 리스코프 치환 원칙 (Liskov Substitution Principle)

바바라 리스코프는 하위 타입을 아래와 같이 정의했다.

여기에서 필요한 것은 다음과 같은 치환(substitution) 원칙이다. S타입의 객체 o1 각각에 대응하는 T타입 객체 o2가 있고, T타입을 이용해서 정의한 모든 프로그램 P에 o2의 자리에 o1을 치환하더라도 P의 행위가 변하지 않는다면, S는 T의 하위타입이다.

LSP는 아키텍처 수준까지 확장할 수 있고, 반드시 확장애야만 한다. 치환 가능성을 조금이라도 위배하면 시스템 아키텍처가 오염되어 상당량의 별도 메커니즘을 추가해야 할 수 있기 때문이다.