본문 바로가기
javaScript

리스코프 치환 원칙(Liskov Substitution Principle)

by mooyou 2024. 3. 2.
728x90
300x250

만약 S가 T의 하위 형식 이라면, 프로그램 안에서 T타입의 객체를 대체해도 프로그램의 의미나 동작에는 아무런 영향이 없어야 한다.

 

이 원칙은 "is-a" 관계의 의미를 설명하는데 사용된다.

예를 들어, "자동차는 차량이다"라고 말할 때, 자동차는 차량의 하위 형식이 되며, 따라서 자동차는 클래스 차량 클래스를 상속할 수 있어야 한다.

 

가능한 경우:

1. 자동차와 승용차 : 승용차는 자동차라고 말할 수 있기 때문에, 승용차 클래스는 자동차 클래스를 상속할 수 있다.

2. 삼각형과 도형 : 삼각형은 도형이다라고 말할 수 있기 때문에 삼각형 클래스는 도형 클래스를 상속 할수 있다.

 

불가능한 경우

1. 기차와 자동차 : 기차클래스에서 이동하는 기능을 가져와 자동차를 이동하는 클래스를 만든다 하지만 기차는 자동차라고 말할 수 없기 때문에 상속해서는 안된다.

2. 사각형과 삼각형 : 사각형은 삼각형이 아니다라고 말할 수 있기때문에, 사각형 클래스는 삼각형 클래스르 ㄹ상속해서는 안된다.

728x90
반응형

댓글