객체 지향 설계와 스프링

bird.j·2021년 7월 6일
0

spring

목록 보기
4/7
  • 스프링은 DI, DI 컨테이너를 제공함으로써 다형성 + OCP, DIP를 가능하도록 지원한다.
    • DI : 의존관계, 의존성 주입
  • 클라이언트 코드의 변경 없이 기능 확장
  • 쉽게 부품을 교체하듯이 개발
  • 모든 설계에 역할과 구현을 분리하자.
  • 이상적으로는 모든 설계에 인터페이스를 부여하자.


결론적으로, 구현과 역할을 구분하는 것이 중요한 것 같다.
인터페이스와 이를 구현한 객체를 확실히 구분하여 인터페이스를 중심으로 이를 확장한다는 것이다. 이는 기능을 확장할 때 좋다고 한다. 연극을 하는 배우가 있다고 할 때, 역할을 맡은 배우는 교체될 수 있지만, 극에서의 캐릭터의 특성, 역할은 변경되지 않으므로 역할에 초점을 맞춰야 하는 것처럼 말이다.

그러나, 인터페이스를 도입하면 추상화라는 비용이 발생하기 때문에 기능을 확장할 가능성이 없다면 구체 클래스를 직접 사용하고 향후 꼭 필요할 때 리팩토링해서 인터페이스를 도입할 수도 있다.

0개의 댓글