Liskov Substitution Principle

Donghun Seol·2023년 4월 7일

타입 S가 타입 T의 서브타입일때 오브젝트 S는 오브젝트 T로 치환 가능하다.
자식클래스(S)를 부모클래스(T) 타입으로 활용해도 제대로 동작한다.

BlackCat의 인스턴스인 bCat을 Cat type을 인자로 받는 makeCry함수에 넣어도 정상 작동함을 알 수 있다.

이 원칙을 따름으로서 직관적이면서 유지보수가 쉬운 코드를 작성할 수 있다.

class Cat {
  speak() {
    console.log('meow');
  }
}

class BlackCat extends Cat {
  speak(): void {
    console.log('black meow');
  }
}

function makeCry(cat: Cat) {
  cat.speak();
}

const cat = new Cat();
makeCry(cat);
const bCat = new BlackCat();
makeCry(bCat);
profile
I'm going from failure to failure without losing enthusiasm

0개의 댓글