[Spring] 객체지향 프로그래밍

김대준·2021년 12월 25일
0

spring

목록 보기
6/25
post-thumbnail

객체 지향 특징


  • 추상화
  • 캡슐화
  • 상속
  • 다형성

객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지 를 주고받고, 데이터를 처리할 수 있다. (협력)



📌 다형성

  • 역할과 구현으로 구분

예시)
운전자와 자동차

역할과 구현을 분리 장점

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

객체 협력

  • 클라이언트 : 요청, 서버 : 응답
  • 수 많은 객체 클라이언트와 객체 서버는 서로 협력 관계를 가진다.

클라이언트와 서버


인터페이스의 다형성

인터페이스의 다형성


다형성의 본질

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

역할과 구현 분리의 한계

  • 역할(인터페이스) 자체가 변하면 클라이언트, 서버 모두에 큰 변경이 발생한다.




스프링과 객체 지향


  • 다형성이 가장 중요하다.
  • 스프링은 다형성을 극대화해서 이용할 수 있게 도와준다.
  • 스프링에서 이야기하는 제어의 역전(IoC), 의존관계 주입(DI)은 다형성을 활용해서 역할과 구현을 편리하게 다룰 수 있도록 지원한다.
profile
kureungkureung

0개의 댓글