+ 내가 생각하는 상속
상속을 다시 생각해보자
상속은 객체 지향 프로그래밍의 중요한 부분이고 잘 쓰면 유용하지만 잘못된 상속을 만들면 문제가 발생합니다. LSP를 위반함으로써 편리함과 단순함을 얻을 수 있습니다.
저 같은 경우 처음으로 상속을 알았을 때 혁명이라고 생각했습니다. 그렇게 상속을 잘 활용된 코드가 좋은 코드라고 생각하며 살아왔죠.
하지만 Gong Of Four를 공부하면서 상속 을 잘쓰는 방법은 상속을 쓰지 않는 것이라는 말을 듣고 깜짝 놀랐습니다.
듣고 보니 그랬습니다. 상속이 잘되어있다는 것은 너무 강하게 결합되어 있다는 것이고 저희가 위에서 배운 LSP를 위배할 수 밖에 없습니다. 왜냐하면 상속을 쓰다보면 정말 어쩔 수 없이 보모에 행위를 위해하면 리크코프 원칙을 위배하게되기 때문입니다.
물론 LSP를 모두 지키려고 한다면 비효율적이고 너무 자주 위반하게 된다면 예상치 못한 안정성을 해치게됩니다. 때문에 저는 상속을 사용할 때 제가 LSP를 위반하는 것이 아닌지 생각해보아야한다고 생각합니다.