SOLID LSP

x·2021년 3월 27일
0

타입에 대한 의존성을 없애야 한다.
super class, sub class를 의존성 주입했을 때 타입이 어떤건지 판단(instanceof)해서 사용하면 안된다.
LSP가 위반되면 OCP는 위반된다.

LSP 위반

사각형 예제
사각형의 면적은 가로 x 세로이다. 정사각형을 추가하면 면적을 한변 x 한변으로 구할 수 있다. 사각형 클래스가 주입된 곳에 정사각형 클래스를 대신 주입하면 면적을 구할 때 문제가 생긴다.

sub 클래스에서 super 클래스 사용하는 경우
instanceof, downcast 사용하는 경우
위 경우들이 나타나면 상속 관계 대신 복합 관계로 수정할 수 있는지 고민해야 함

0개의 댓글