티스토리 뷰

토비의 Spring을 정독하고 싶었습니다만.. 업무가 바빠지며 출퇴근 시간 말고는 자유의 몸이 아니게되어
인프런을 통하여 김영한님의 강의를 구독하였습니다.
선물받은 레노버p11과 함께 출퇴근 시간을 적극 활용하여 완강을 목표합니다.


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

객체 지향 프로그래밍은 코드를 유연하고, 변경이 용이하게 만들어야 합니다. 쉽게 말해 아래와 같이 코드를 작성해야한다는 것 입니다.


  • 레고 블럭을 조립하듯이
  • 키보드, 마우스 갈아 끼우듯이
  • 컴퓨터 부품 갈아 끼우듯이
  • 컴포넌트를 쉽고 유연하게 변경하면서 개발할 수 있는 방법

객체 지향의 특징

객체 지향의 큰 특징은 아래와 같이 네가지가 존재합니다.


  • 추상화
  • 캡슐화
  • 상속
  • 다형성
    이중 객체 지향의 꽃이라 할 수 있는 다형성에 대하여 살펴보겠습니다.

다형성

다형성의 비유

실세계와 객체 지향을 1:1로 매칭해서는 안되지만 실세계의 비유를들면 이해하기 좋기에 실세계를 비유로합니다.
객체 지향에서는 세상을 역할구현 으로 구분합니다


위 그림과 같이 "자동차" 와 "운전자" 를 예를들어 봅니다.


"운전자"는 자동차의 차종에 관계없이 시동을 걸면 켜진다, 엑셀을 밟으면 나아간다, 브레이크를 밟으면 멈춘다, 핸들을 좌우로 돌리면 방향을 전환한다 등과 같은 자동차의 기본적인 역할만 지켜져있다면 차종이 k3든 아반떼는 테슬라든 상관없이 운전이 가능합니다.


이게 불가능하였다면 대리운전 사업은 불가능하였겠죠


또 다른 예를 들어봅니다.


위 사진과 같이 "로미오와 줄리엣" 공연이 있다고 생각해 봅시다.


"로미오" 라는 역할 과 "줄리엣" 이라는 역할은 고정되어있으며
"로미오" 라는 역할만 충실히 지킨다면 배우가 장동건이든 원빈이든 이 글을 쓰고있는 필자(?)던간에 공연이 진행될 수 있습니다.
마찬가지로 "줄리엣" 이라는 역할 또한 김태희든 송혜교든 역할만 충실한다면 공연을 할 수 있습니다.


이렇게 "자동차", "로미오", "줄리엣" 이라는 하나의 역할이 존재하고
하나의 역할을 구현하는 "k3", "아반떼", "테슬라" 라는 여러개의 구현체가 존재합니다.


하나의 역할에 다양한 구현체가 존재할 수 있는 것 이것이 바로 다형성 입니다.


다형성으로 인하여 객체를 사용하는 클라이언트는 내가 사용하고자하는 객체의 역할만 알면되고 그 객체의 구현체가 어떻게 생겼는지는 몰라도 됩니다, 또한 구현체를 마치 레고 블럭 갈아 끼우듯이 또는 키보드 마우스를 갈아 끼우듯이 쉽고 간단하게 바꿀 수 있게됩니다.


이것이 객체 지향 프로그램의 가장 강력한 장점입니다.






참고자료 : 인프런) 스프링 핵심 원리 - 기본편 (김영한 저) 섹션 1. 객체 지향 설계와 스프링

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함