좋은 객체지향 프로그래밍이란?
1. 객체지향
- 추상화
- 캡슐화
- 상속
- 다형성
1-1. 다형성의 중요성
- 역할과 구현으로 세상을 구분!
- 역할 : 인터페이스
- 구현 : 클래스
- → 인터페이스를 먼저 설계 !
- 자동차(역할) : K3, 아반떼, 테슬라(구현)
1-2. 역할과 구현을 분리
- 단순해지고, 유연해지며, 변경도 편리해진다.
- 클라이언트는, 인터페이스만 알면 된다.
- 클라이언트는, 구현 대상의 내부 구조를 몰라도 된다.
- 클라이언트는, 내부 구조가 변경되어도 영향을 받지 않는다.
- 클라이언트는, 구현 대상 자체를 변경해도 영향을 받지 않는다.
- 어떻게? 자바의 ‘다형성’을 활용
- 인터페이스를 오버라이딩
1-3. 역할과 구현을 분리의 한계
- 인터페이스 자체가 변하면, 클라이언트, 서버 모두에 큰 변경이 발생한다.
- 자동차 → 비행기
- 대본 자체 변경
1-4. 객체의 협력이라는 관계부터 생각
- 혼자 있는 객체는 없다.
- 클라이언트 : 요청
- 서버 : 응답
- 수 많은 객체 클라이언트와 객체 서버는 서로 협력 관계를 가진다.
'공부 > Spring' 카테고리의 다른 글
[Spring](스프링 핵심 원리 - 기본편) 스프링 핵심 원리 이해1 - 예제 만들기 (0) | 2022.04.19 |
---|---|
[Spring] SOLID (좋은 객체 지향 설계의 5가지 원칙) (0) | 2022.04.19 |
[Spring] 스프링의 탄생과 개념 (0) | 2022.04.19 |
Querydsl (0) | 2021.10.04 |
스프링 데이터 JPA (0) | 2021.10.02 |
댓글