스프링은 객체 지향의 특징 중 다형성을 극대화해서 이용할 수 있게 도와줍니다.
이 포스트에서는 다형성과 좋은 객체 지향 프로그램에 대해 정리해보았습니다.
1. 객체 지향 프로그램
- 컴퓨터 프로그램을 명령어의 목록이 아닌 여러개의 독립된 단위 (객체) 들의 모임으로 보는 것.
- 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 사용됨
2. 다형성
- 프로그램 언어의 각 요소들이 다양한 자료형에 속하는것이 허가되는 성질
- 다형성을 통해 인터페이스를 구현한 객체 인스턴트를 실행 시점에 유연하게 변경할 수 있다.
2.1. 역할과 구현을 분리
인터페이스를 구현한 객체 인스턴트를 유연하게 변경하는 예제를 실생활의 예를 통해 알아보면
먼저 역할과 구현으로 구분을 해보겠습니다.

위 그림에서 자동차라는 역할(인터페이스) 를 따라서 자동차(객체 인스턴트) 를 구현했기 때문에
운전자는 k3 에서 테슬라로 자동차를 바꿔도 운전할 수 있습니다.
이를 정리하면
- 클라이언트(운전자) 는 대상의 역할(인터페이스) 만 알면 됨
- 클라이언트(운전자) 는 구현 대상(객체 인스턴트) 의 내부 구조를 몰라도 됨
- 클라이언트(운전자) 는 구현 대상의 내부 구조가 변경되어도 영향받지 않음
- 클라이언트(운전자) 는 구현 대상 자체를 변경(k3 -> 테슬라) 해도 영향받지 않음
3. 스프링과 객체 지향
- 스프링은 다형성을 극대화해서 이용할 수 있게 해준다.
- 스프링의 제어의 역전(Ioc), 의존관계 주입(DI) 는 역할과 구현을 편리하게 해줌.
'Spring > Spring 핵심 원리' 카테고리의 다른 글
예제 만들기 - AppConfig 생성 (0) | 2023.01.20 |
---|---|
예제 만들기 - 주문과 할인 도메인 설계 (0) | 2023.01.20 |
객체 지향과 스프링 - 좋은 객체 지향 설계의 5가지 원칙 (0) | 2023.01.16 |
예제 만들기 - 회원 도메인 설계 (0) | 2023.01.14 |
예제 만들기 - 프로젝트 생성 (0) | 2023.01.14 |