좋은 객체 지향 프로그래밍

bird.j·2021년 7월 6일
0

spring

목록 보기
2/7

💡 객체 지향 프로그래밍


  • 객체들의 모임으로 파악. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다.(협력)

  • 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다.

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

역할과 구현을 분리

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

  • 클라이언트는 대상의 역할(인터페이스)만 알면 된다.
  • 클라이언트는 구현 대상의 내부 구조를 몰라도 된다.
  • 클라이언트는 구현 대상의 내부 구조가 변경되어도 영향을 받지 않는다.
  • 클라이언트는 구현 대상 자체를 변경해도 영향을 받지 않는다.
  • 역할 = 인터페이스, 구현 = 인터페이스를 구현한 클래스, 구현 객체
  • 객체를 설계할 때 역할과 구현을 명확히 분리
  • 객체 설계 시 역할을 먼저 부여하고, 그 역할을 수행하는 구현 객체 만들기
  • 실세계의 역할과 구현이라는 편리한 컨셉을 다형성을 통해 객체 세상으로 가져올 수 있다.
  • 유연하고 변경이 용이
  • 확장 가능한 설계
  • 클라이언트에 영향을 주지 않는 변경 가능
  • 인터페이스를 안정적으로 잘 설계하는 것이 중요



💡 스프링과 객체 지향


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

0개의 댓글