본문 바로가기
스프링 Spring/스프링 핵심 원리 - 기본편

[객체 지향 설계와 스프링] 좋은 객체 지향 프로그래밍이란?

by 코딩개발 2022. 1. 29.
728x90
반응형

좋은 객체 지향 프로그래밍이란?

 

 

객체 지향 특징

 - 추상화, 갭슐화, 상속, 다형성

 

객체 지향 프로그래밍

1. 객체들의 모임

2. 객체메시지를 주고받고 데이터 처리

3. 유연하고 변경 용이 -> 다형성

 

 

다형성

역할구현으로 세상을 구분

역활과 구현으로 구분하면 세상이 단순해지고, 유연해지며 변경도 편리

 

 

장점

대상의 역할(인터페이스)만 알면 된다.

ex) 줄리엣의 역할

구현 대상의 내부구조를 몰라도 된다.

ex) 자동차 내부구조

구현대상의 내부 구조가 변경되어도 영향을 받지 않는다.

ex) k5 -> 테슬라

구현 대상 자체를 변경해도 영향을 받지 않는다.

ex) k5 -> 아반떼

 

역할과 구현을 명확히 분리

역할 = 인터페이스

구현 = 인터페이스를 구현한 클래스, 구현 객체

객체 설계시 역할(인터페이스)을 먼저 부여하고, 그 역할을 수행하는 구현 객체 만들기

 

 

객체의 협력이라는 관계부터 생각

클라이언트 : 요청

서버 : 응답

 

서로 협력 관계

의존한다 = 내가 제를 알고 있다.

*** 인터페이스를 안정적으로 잘 설계하는 것이 중요

 

자바 언어의 다형성

오버라이딩

다형성으로 인터페이스를 구현한 객체를 실행 시점에 유연하게 변경할 수 있다.

클래스 상속 관계도 다형성, 오버라이딩 적용가능

 

 

다형성의 본질

인테페이스를 구현한 객체 인스턴스를 실행 시점유연하게 변경할 수 있다.

다형성의 본질을 이해하려면 협력이라는 객체 사이의 관계에서 시작해야함

클라이언트를 변경하지 않고, 서버의 구현 기능을 유연하게 변경할 수 있다.

 

 

스프링과 객체 지향
• 다형성이 가장 중요하다!
• 스프링은 다형성을 극대화해서 이용할 수 있게 도와준다.
• 스프링에서 이야기하는 제어의 역전(IoC), 의존관계 주입(DI)은 다형성을 활용해서 역할과
  구현을 편리하게 다룰 수 있도록 지원한다.
• 스프링을 사용하면 마치 레고 블럭 조립하듯이! 공연 무대의 배우를 선택하듯이! 구현을 편
  리하게 변경할 수 있다.


<출처>

인프런 강의 "스프링 핵심 원리 - 기본편"을 정리한 것 입니다.

 

스프링 핵심 원리 - 기본편 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런...

www.inflearn.com

 
728x90
반응형

댓글