본문 바로가기
공부/Spring

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

by JERO__ 2022. 4. 19.

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

1. 객체지향

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

1-1. 다형성의 중요성

  • 역할구현으로 세상을 구분!
    • 역할 : 인터페이스
    • 구현 : 클래스
    • 인터페이스를 먼저 설계 !
  • 자동차(역할) : K3, 아반떼, 테슬라(구현)

1-2. 역할과 구현을 분리

  • 단순해지고, 유연해지며, 변경도 편리해진다.
    • 클라이언트는, 인터페이스만 알면 된다.
    • 클라이언트는, 구현 대상의 내부 구조를 몰라도 된다.
    • 클라이언트는, 내부 구조가 변경되어도 영향을 받지 않는다.
    • 클라이언트는, 구현 대상 자체를 변경해도 영향을 받지 않는다.
  • 어떻게? 자바의 ‘다형성’을 활용
    • 인터페이스를 오버라이딩

1-3. 역할과 구현을 분리의 한계

  • 인터페이스 자체가 변하면, 클라이언트, 서버 모두에 큰 변경이 발생한다.
    • 자동차 → 비행기
    • 대본 자체 변경
    인터페이스를 안정적으로 잘 설계하는 것이 중요

1-4. 객체의 협력이라는 관계부터 생각

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

댓글