카테고리 없음
리스코프 치환 법칙(LSP)
이츠미브라이트
2019. 12. 13. 15:46
리스코프 치환 법칙(Liskov Substitusion Principle, LSP)
자식 클래스는 최소한 자신의 부모 클래스에서 가능한 행동들은 대신 수행할 수 있어야 한다.
이를 위해 부모클래스와 자식 클래스 사이의 행위가 일관되어야 한다.
예를 들어 포유류를 부모클래스와 원숭이를 자식클래스로 비유하여 설명할 수 있다.
LSP를 만족하면 포유류라는 단어를 원숭이라는 단어로 대체가 가능할 것이다.
포유류는 알을 낳지 않고, 새끼를 낳아서 번식한다.
포유류는 젖을 먹여서 새끼를 키우고 폐를 통해 호흡한다.
포유류는 체온이 일정한 정온동물이며, 털이나 두꺼운 피부로 덮여 있다.
원숭이는 알을 낳지 않고, 새끼를 낳아서 번식한다.
원숭이는 젖을 먹여서 새끼를 키우고 폐를 통해 호흡한다.
원숭이는 체온이 일정한 정온동물이며, 털이나 두꺼운 피부로 덮여 있다.
LSP를 만족하는 경우, 부모 클래스가 하는 행동을 자식클래스가 일관되게 대신할 수 있다.
부모 클래스를 오버라이딩하여, 재정의 하는 경우
부모클래스의 행동과 자식클래스의 행동이 동일하지 않으므로, LSP를 만족할 수 없게 된다.
LSP를 만족시키는 간단한 방법은 재정의하지 않는 것이다.
※ 수정하여 다시 올릴 부분
자바의 경우, 상속을 통해 부모 객체를 인터페이스로 사용할 수 있으며,
LSP를 충족하게 된다면, 다형성(하나의 객체가 여러개의 자료형 타입을 가질 수 있는 것)의 혜택을 누릴 수 있다.