티스토리 뷰
반응형
🚀 OOP를 올바르계 설계해 나가는 원칙
OOP의 4대 특성 캡슐화
, 상속
, 추상화
, 다형성
은 객체지향 프로그래밍을 이어가는 동안 사용할 Tool
같은 역할이 된다.
도구가 있다면 용도에 맞게 사용해야하는데 요리를 하면 표준에 있듯이 OOP 세계에서도 원칙이라는 것이 존대한다.
OOP
를 기반으로 설계하는 방식을 OOD (Object Oriented Design)
이라고 하며
설계 방법을 구체화 하여 정리한 원칙이 SOLID
가 되는 것이다.
🌠 SOLID
원칙이 탄생한 것은 높은 응집도와 낮은 결합도 목표로 로버트 C.마틴
이 확립한 개념이다.
☄ LSP(Liskov Substitution Principle) : 리스코프 치환 원칙
서브 타입은 언제나 자신의 기반 타입으로 교체할 수 있어야한다.
LSP원칙
의 목적은 교체
에 있다.
OOP에서의 상속은 계층도
혹은 조직도
가 아닌 분류도가 되어야한다. 즉, 다음 원칙이 곧 LSP원칙
의 기반이 되는 것이다.
- 하위 클래스는 상위 클래스의 한 종류이다.
- 구현 분류는 인터페이스할 수 있어야 한다.
✔ LSK의 잘못된 예
아버지 춘향이 = new 딸();
상위 클라스 역할의 아버지가 하위 클라스의 딸 에게 자신의 역할을 줄 수는 없다.
춘향이는 아버지라는 객체의 참조 변수이지만 아버지의 메서드를 수행할 수는 없다.
✔ LSK의 올바른 예
동물 황제펭귄 = new 펭귄();
동물 객체의 하위 계층은 펭귄이 될 수 있으며 펭귄은 동물의 역할을 수행할 수 있다.
때문에 동물과 펭귄의 역할은 LSP원칙
에 만족된다.
결국 리스코프 치환 원칙
은 객제 지향의 상속이라는 특성을 올바르게 적용하며 자연스럽게 얻게되는 것이다.
🧾 Reference
반응형
'이론' 카테고리의 다른 글
객체지향설계의 5대 원칙 - SRP 편 (0) | 2022.04.01 |
---|---|
객체지향설계의 5대 원칙 - OCP 편 (0) | 2022.03.31 |
객체지향설계의 5대 원칙 - ISP 편 (0) | 2022.03.28 |
Service Layer (1) | 2022.03.23 |
도메인 주도 설계 - DDD (0) | 2022.03.20 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- springboot
- interview
- 스프링
- 면접
- docker
- 릿코드
- JPA
- 백준
- CS
- Spring
- 프로그래머스
- Algorithm
- OOP
- 알고리즘
- 디자인패턴
- 스프링부트
- 자바
- spring-cloud
- ajax
- java
- 그래프
- security
- 매트랩
- 수학
- C언어
- kakao
- Matlab
- Solid
- 자격증
- nginx
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함