본문 바로가기
TOP BOTTOM
1. 프로그래밍/Spring

[스프링 핵심 원리] 1-2. 객체 지향 특징

by mola23 2022. 3. 2.

강의

1. 객체 지향

1) 특징

① 캡슐화
② 추상화
③ 상속
④ 다형성

2) 객체 지향 프로그래밍

컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나,
여러 개의 독립된 단위, 객체들의 모임으로 파악하고자 하는 것
- 각각의 객체는 메시지를 주고 받고, 데이터를 처리
=> 프로그램이 유연하고 변경이 용이

2. 다형성(Polymorphism)

1) 역할/구현

역할/구현으로 구분하면 단순, 유연해지고, 변경이 편리해진다.
역할 : 인터페이스
구현 : 인터페이스를 구현한 클래스, 구현 객체
-> 객체를 설계 시, 역할(인터페이스)을 먼저 부여하고, 그 역할을 수행하는 구현 객체 생성

2) 예시

① 운전자 - 자동차
② 공연 역할 - 배우
③ 정렬 알고리즘
④ 할인 정책 로직

3) 객체의 협력

- 다형성의 본질을 이해하려면 객체 사이의 관계인 협력에서 시작해야 한다.
- 혼자 있는 객체는 없다. 수 많은 객체 클라이언트와 객체 서버는 서로 협력 관계를 가진다.
- 클라이언트 : 요청
- 서버 : 응답

4) 장점

클라이언트는
① 인터페이스(구현 대상의 역할)만 알면 된다.
② 구현 대상의 내부 구조를 몰라도 된다.
③ 구현 대상의 내부 구조가 변경되어도 영향을 받지 않는다.
④ 구현 대상 자체를 변경해도 영향을 받지 않는다.

5) 본질 

인터페이스를 구현한 객체 인스턴스를 실행 시점에 유연하게 변경 가능
클라이언트를 변경하지 않고, 서버의 구현 기능을 유연하게 변경 가능

확장 가능한 설계
- 클라이언트에 영향을 주지 않는 변경 가능
-> 인터페이스를 안정적으로 잘 설계하는 것이 중요

 

댓글