클린 코더스 강의 14.2. LSP(Liskov Substitution Principle)
https://www.youtube.com/watch?v=OfVwuWJSHOY&list=PL7pUrjEGbG8ZMPQ-XukPJsFyMeyvtGcnV&index=17
가
의 하위형이라면
의 객체를
의 객체로 치환할 수 있어야 한다는 원칙이다.

S, T 관계를 쉽게 설명한다면 ((S)t)
와 같이 구체화된 하위 타입으로 downcasting 을 하면 원칙 위반이다!
나의 생각
SOLID 5원칙 중 SRP, OCP
가장 중요하다고 생각하지만
가장 중요한 원칙은 LSP
원칙이라고 생각한다.
LSP
가 지켜져야 OCP
원칙을 지킬 수 있기 때문이다.
도메인 모델을 설계할 때 LSP 의 위반이라고 판단되면 즉시 LSP 원칙을 지키기 위해 수정해야 한다. 시간이 지나고 구체화된 Type이 많아질 수록 돌이킬 수 없을 만큼의 변경을 요구하기 때문이다.
SnowBall 과 같이 처음에는 작은 눈덩이였지만 큰 눈덩이가 되었을 땐 이미 늦었으며 돌이키기 위한 비용은 어마어마해진다.
Previous클린 코더스 강의 14.1. OCP(Open-Closed Principle)Next클린 코더스 강의 14.3. ISP(Interface Segregation Principle)
Last updated
Was this helpful?