Dev./객체지향
Liskov Substitution principle(리스코프 치환 원칙)
hotpotato0
2022. 3. 29. 21:11
치환성(영어: substitutability)은 객체 지향 프로그래밍 원칙이다. 컴퓨터 프로그램에서 자료형 {\displaystyle S}
가 자료형 {\displaystyle T}의 하위형이라면 필요한 프로그램의 속성(정확성, 수행하는 업무 등)의 변경 없이 자료형 {\displaystyle T}
의 객체를 자료형 {\displaystyle S}의 객체로 교체(치환)할 수 있어야 한다는 원칙이다.
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
사전에 클래스 설계시 확장성을 고려해야한다.
기본적으로 SOLID 원칙은 무조건 이게 답이다가 아닌,
이를 통해 직관적이고 유지보수가 쉬운 코드작성이 가능해진다.