1. 추상화
- 불필요한 부분을 제거한다.
- 인터페이스와 구현을 분리한다.
2. 캡슐형
- 데이터 캡슐화 : 필드와 메서드를 하나로 묶는 것
- 은닉화 : 객체의 세부내용이 외부에 드러나지 않도록 private으로 접근제한을 두어, 외부에서 데이터를 직접 접근하는 것을 방지한다.
3. 상속
https://hyun-1200.tistory.com/98
4. 다형성
https://hyun-1200.tistory.com/103
- 역할과 구현을 분리 할 수 있다.
- 역할과 구현으로 구분하면 세상이 단순해지고, 유연해지며 변경도 편리해진다.
장점
- 클라이언트는 대상의 역할(인터페이스)만 알면 된다.
- 클라이언트는 구현 대상의 내부 구조를 몰라도 된다.
- 클라이언트는 구현 대상의 내부 구조가 변경되어도 영향을 받지 않는다. 클라이언트는 구현 대상 자체를 변경해도 영향을 받지 않는다.
활용
- 자바 언어의 다형성을 활용
- 역할 = 인터페이스
- 구현 = 인터페이스를 구현한 클래스, 구현 객체
- 객체를 설계할 때 역할과 구현을 명확히 분리
- 객체 설계시 역할(인터페이스)을 먼저 부여하고, 그 역할을 수행하는 구현 객체 만들기
다형성의 본질
- 인터페이스를 구현한 객체 인스턴스를 실행 시점에 유연하게 변경할 수 있다. 다형성의 본질을 이해하려면 협력이라는 객체사이의 관계에서 시작해야함
- 클라이언트를 변경하지 않고, 서버의 구현 기능을 유연하게 변경할 수 있다.
- 스프링과 객체 지향에서 다형성이 가장 중요하다!
- 스프링은 다형성을 극대화해서 이용할 수 있게 도와준다.
'이직준비 > CS' 카테고리의 다른 글
객체지향의 설계 원칙 5가지 (SOLID) (0) | 2022.07.28 |
---|---|
JVM의 메모리 구조 (0) | 2022.07.28 |
클린코드란? (0) | 2022.07.28 |
접근제한자 (public / protected/ default/ private ) (0) | 2022.07.28 |
DataBase의 인덱스 (Index) 란? (0) | 2022.07.28 |