DINO NET

SOLID - 3. Liskov Substitution Principle (리스코프 치환 원칙) 본문

program()/파이썬

SOLID - 3. Liskov Substitution Principle (리스코프 치환 원칙)

2023. 2. 15. 21:29

리스코프 치환 원칙 Liskov Substitution Principle

부모 클래스의 인스턴스를 사용하는 위치에 자식 클래스의 인스턴스를 대신 사용했을 때, 코드가 원래 대로 작동해야 한다. -> 부모 클래스의 행동규약을 자식 클래스가 위반하지 말 것!

 

자식 클래스의 위반은 오버라이딩을 하는 과정에서 일어난다.

1. 자식 클래스가 부모 클래스변수 타입을 바꾸거나 메소드의 파라미터 또는 리턴 값의 타입 or 갯수를 바꾸는 경우

2. 자식 클래스가 부모 클래스의 의도와 다르게 메소드를 오버라이딩 하는 경우

 

1번의 경우에는 syntax error가 나므로 프로그램 상에서 오류를 잡을 수 있는 반면, 2번의 경우는 내용적으로 오류가 발생하는 경우이므로 실행 자체에는 오류가 발생하지 않으나 전혀 다른 결과를 초래할 수가 있다.

 

리스코프 치환 원칙은 개발자들 사이의 신뢰를 기반으로 한 원칙!

 

 

 

 

 

0215