객체지향 설계 SOLID 원칙
  • 객체지향 설계 SOLID 원칙을 공부하는 스터디
  • 클린 코더스 강의
    • 클린 코더스 강의 12. SOLID Foundation
    • 클린 코더스 13. SRP(Single Responsibility Principle)
    • 클린 코더스 강의 14.1. OCP(Open-Closed Principle)
    • 클린 코더스 강의 14.2. LSP(Liskov Substitution Principle)
    • 클린 코더스 강의 14.3. ISP(Interface Segregation Principle)
Powered by GitBook
On this page

Was this helpful?

  1. 클린 코더스 강의

클린 코더스 강의 14.2. LSP(Liskov Substitution Principle)

https://www.youtube.com/watch?v=OfVwuWJSHOY&list=PL7pUrjEGbG8ZMPQ-XukPJsFyMeyvtGcnV&index=17

Previous클린 코더스 강의 14.1. OCP(Open-Closed Principle)Next클린 코더스 강의 14.3. ISP(Interface Segregation Principle)

Last updated 5 years ago

Was this helpful?

가 의 이라면 의 객체를 의 객체로 치환할 수 있어야 한다는 원칙이다.

S, T 관계를 쉽게 설명한다면 ((S)t) 와 같이 구체화된 하위 타입으로 downcasting 을 하면 원칙 위반이다!

나의 생각

SOLID 5원칙 중 SRP, OCP 가장 중요하다고 생각하지만 가장 중요한 원칙은 LSP 원칙이라고 생각한다. LSP 가 지켜져야 OCP 원칙을 지킬 수 있기 때문이다.

도메인 모델을 설계할 때 LSP 의 위반이라고 판단되면 즉시 LSP 원칙을 지키기 위해 수정해야 한다. 시간이 지나고 구체화된 Type이 많아질 수록 돌이킬 수 없을 만큼의 변경을 요구하기 때문이다.

SnowBall 과 같이 처음에는 작은 눈덩이였지만 큰 눈덩이가 되었을 땐 이미 늦었으며 돌이키기 위한 비용은 어마어마해진다.

참조:

https://ko.wikipedia.org/wiki/%EB%A6%AC%EC%8A%A4%EC%BD%94%ED%94%84_%EC%B9%98%ED%99%98_%EC%9B%90%EC%B9%99
하위형
T
T
S
S