객체지향 5원칙 : 3.리스코브 치환의 원칙, 적용방법!쉬운 예시!
- 프로그래밍/개발새발
- 2019. 6. 25.
용기가 생명을 위험한 지경으로 몰고 갈 수 있듯이, 공포심이 때로는 생명을 지켜줄 때도 있다
리스코브 치환의 원칙 : LSP : The Liskov Substitution Principle
1.요점
-자식클래스는 언제나 부모클래스를 대체할 수 있어야 한다는 원칙
-부모클래스가 들어갈 자리에 자식 클래스를 넣어도 계획대로 잘 작동해야 한다는 것
예시1)
자료형 T가 부모클래스, 자료형 S가 자식클래스(하위클래스)라고 한다면, T의 객체를 S의 객체로 교체해도 문제가 없어야 한다.
2.적용방법
1)만약 두 개체가 똑 같은 일을 한다면 둘을 하나의 클래스로 표현하고 이들을 구분할 수 있는 필드를 둡니다.
2)똑같은 연산을 제공하지만, 이들을 약간씩 다르게 한다면 공통의 인터페이스를 만들고 둘이 이를 구현 합니다. (인터페이스 상속)
3)공통된 연산이 없다면 완전 별개인 2개의 클래스를 만듭니다.
4)만약 두 개체가 하는 일에 추가적으로 무언가를 더 한다면 구현 상속을 사용합니다.
위반예시)
위반하는 예로는, 너비와 높이의 조회(getter)와 할당(setter) 메서드를 가진 직사각형 클래스로부터 정사각형 클래스를 파생하는 경우가 있습니다.
정사각형은 너비와 높이가 동일하기때문에, 값을 함부로 바꿀 수 없는 부분에서 예기치 못한 오류를 범할 수 있습니다
정사각형은 너비와 높이가 같음을 유지하는 조건으로 할당 메서드를 변경하면, 직사각형의 할당메서드에서 너비와 높이를 독립적(자유롭게)으로 변경하는 조건에서 위반사항이 발생합니다.
(리스코브의 원칙대로 직사각형객체를 사용하는 문맥에서 직사각형객체 대신 정사각형객체를 사용할 수 없기 때문에 위반사항입니당)
남기는 말
자료를 쉽게 풀어 쓸려고했는데,,, 도움이 되셨으면 좋겠습니다.
'프로그래밍 > 개발새발' 카테고리의 다른 글
객체지향 5원칙 : 5.의존성 역전의 원칙 , 의존성 주입이란 무엇인가.. (1) | 2019.09.09 |
---|---|
객체지향 5원칙 : 4.인터페이스 분리의 원칙, 예시를 보며 이해하는 과정.. (0) | 2019.07.03 |
객체지향 5원칙 : 2.OCP 개방폐쇄 원칙, "폐쇄와 확장"은 이렇게! (0) | 2019.06.21 |
객체지향 5원칙 : 1.SRP 단일 책임 원칙 이렇게 쓰면 '안'된다! (0) | 2019.06.19 |
윈도우(내pc)에서 웹서버 APM 구축3 - mysql편 (0) | 2019.06.03 |