paranjong

[Spring] 다형성 본문

Development Study/Spring Framework

[Spring] 다형성

paranjong 2022. 9. 19. 22:13

역할과 구현을 분리

  • 자바 언어의 다형성을 활용
    • 역활 = 인터페이스
    • 구현 = 인터페이스를 구현한 클래스, 구현 객체
  • 객체를 설계할 때 역할과 구현을 명확히 분리
  • 객체 설계시 역할(인터페이스)을 먼저 부여하고, 그 역할을 수행하는 구현 객체 만들기

다형성의 본질

  • 인터페이스를 구현한 객체 인스턴스를 실행 시점에 유연하게 변경할 수 있음.
  • 다형성의 본질을 애하혀면 협력이라는 객체사이의 관계에서 시작해야함.
  • 클라이언트를 변경하지 않고, 서버의 구현 기능을 유현하게 변경할 수 있다. 

역할과 구현을 분리(정리)

  • 실세계의 역할과 구현이라는 편리한 컨셉을 다형성을 통해 객체 세상으로 가져올 수 있음.
  • 유연하고, 변경이 용이
  • 확장 가능한 설계
  • 클라이언트에 영향을 주지 않는 변경 가능
  • 인터페이스를 안정적으로 잘 설계하는 것이 중요

역할과 구현을 분리(한계)

  • 역할(인터페이스) 자체가 변하면, 클라이언트, 서버 모두에 큰 변경이 발생함.
  • 자동차를 비행기로 변경해야 한다면...?
  • 인터페이스를 안정적으로 설계하는 것이 매우 중요.
Comments