티스토리 뷰

Spring

[Spring] 좋은 객체 지향이란?

Gray__ 2021. 8. 5. 22:42

본 게시글은 인프런 강의 스프링 핵심 원리 - 기본편  '강의자료'를 정리한 게시글입니다.

게시글 내용의 출처는 모두 해당 강의에 있습니다.

객체 지향 특징

- 추상화

- 캡슐화

- 상속

- 다형성

=> 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만든다

 

유연하고, 변경에 용이?

- 레고 블럭 조립하듯이

- 키보드 마우스 부품 갈아 끼우듯이

- 컴포넌트를 쉽고 유연하게 변경하면서 개발할 수 있는 방법

- 역할구현으로 구분하는 것이 중요하다!

 

역할과 구현을 사물로 비유하기 위해 운전자-자동차 예시를 들어보자

운전자는 운전하는 방법만 알고 있으면, 자동차가 K3이건 아반떼이건 테슬라이건 구분하지 않고 운전할 수 있다.


역할과 구현 분리

역할구현으로 구분하면  단순해지고, 유연해지며 변경도 편리해진다.

- 클라이언트는 대상의 역할만 알면 된다 => 운전자는 자동차의 악셀, 브레이크의 역할만 알면 된다 !!

- 클라이언트는 구현 대상의 내부 구조를 몰라도 된다 => 운전자는 자동차의 내부 구조를 몰라도 된다 !!

- 클라이언트는 구현 대상의 내부 구조가 변경되어도 영향을 받지 않는다 => 운전자는 자동차 구조에 영향 X

- 클라이언트는 구현 대상 자체를 변경해도 영향을 받지 않는다 => 운전자는 자동차에 따라 운전능력에 영향 X

 

 

자바 언어의 다형성 활용

  • 역할 = Interface (인터페이스)
  • 구현 = Class (인터페이스를 구현한 클래스)
  • 객체를 설계할 때 역할구현을 명확히 분리
  • 객체 설계시 역할(Interface)을 먼저 부여하고, 그 역할을 수행하는 구현 객체 만들기
댓글