9장 LSP 리스코프 치환 원칙 - ChoDragon9/posts GitHub Wiki
LSP: 리스코프 치환 원칙 (Liskov Substitution Principle)
바바라 리스코프는 하위 타입을 아래와 같이 정의했다.
여기에서 필요한 것은 다음과 같은 치환(substitution) 원칙이다. S타입의 객체
o1
각각에 대응하는 T타입 객체o2
가 있고, T타입을 이용해서 정의한 모든 프로그램 P에o2
의 자리에o1
을 치환하더라도 P의 행위가 변하지 않는다면, S는 T의 하위타입이다.
LSP는 아키텍처 수준까지 확장할 수 있고, 반드시 확장애야만 한다. 치환 가능성을 조금이라도 위배하면 시스템 아키텍처가 오염되어 상당량의 별도 메커니즘을 추가해야 할 수 있기 때문이다.