PDH 개발 공부
Liskov Substitution principle, 리스코프 치환 법칙 본문
- 리스코프 치환 법칙 이란 타입을 치환 한다 하더라도 프로그램이 돌아 가도록 함
코드
class Cat:
def speak(self):
print("meow")
class BlackCat(Cat):
def speak(self):
print("black meow")
def speak(cat:Cat):
cat.speak()
cat = Cat()
speak(cat)
// 결과
meow
---------------------------------------------------------
cat = BlackCat()
speak(cat)
// 결과
black meow
----------------------------------------------------------
class Fish(Cat):
def speak(self):
raise Exception("Fish cannot speak")
cat = Fish()
speak(cat)
// 결과
---------------------------------------------------------------------------
Exception Traceback (most recent call last)
<ipython-input-3-6a75a05f3205> in <module>()
4
5 cat = Fish()
----> 6 speak(cat)
1 frames
<ipython-input-3-6a75a05f3205> in speak(self)
1 class Fish(Cat):
2 def speak(self):
----> 3 raise Exception("Fish cannot speak")
4
5 cat = Fish()
Exception: Fish cannot speak
- Fish를 Cat으로 사용 할려면 에러가 난다. 즉 애초에 클래스 설계를 잘 해야함.
'Design Pattern > SOLID' 카테고리의 다른 글
Dependency inversion , 의존관계 역전 (0) | 2021.11.09 |
---|---|
Interface segregation, 인터페이스 분리원칙 (0) | 2021.11.09 |
open Closed principles, 개방 폐쇄 원칙 (0) | 2021.11.09 |
Single Responsibility, 단일 책임 원칙 (0) | 2021.11.09 |