오늘의하루

(SOLID)객체 지향 설계 5가지 원칙 본문

Spring

(SOLID)객체 지향 설계 5가지 원칙

오늘의하루_master 2023. 8. 17. 17:20

SRP : 단일 책임 원칙

  • 한 클래스는 하나의 책임만 가져야 한다.
  • 중요한 기준은 변경이다. 
    • 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것이다.

OCP : 개방-폐쇄 원칙

스프링 컨테이너가 OCP 문제점을 해결해준다.

  • 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.
  • 다형성을 활용하면 가능하다.
  • 인터페이스를 구현한 새로운 클래스를 하나 만들어서 새로운 기능을 구현
    • 역할과 구현의 분리를 생각하면 쉽다.

LSP : 리스코프 치환 원칙

프로그램 객체는 하위 타입의 인스턴스로 바꿀수 있어야 한다.

ISP : 인터페이스 분리 원칙

특정 클라이언트를 위한 인터페이스 여러개가 범용 인터페이스 하나보다 낫다.

  • 인스터페이스 명확해지고, 대체 가능성이 높아진다.

DIP : 의존관계 역전 원칙

스프링 컨테이너가 DIP 문제점을 해결해준다.

  • 추상화에 의존해야지 구체화에 의존하면 안된다.
  • 인터페이스를 의존해야 한다.

핵심 정리

  • 객체 지향의 핵심은 다형성이다.
  • 다형성 만으로는 OCP, DIP를 지킬수 없다.
  • 그러기 때문에 스프링을 알아야한다.
    • 스프링은 DI 컨테이너를 제공함으로써 OCP, DIP를 지킬 수 있다.
Comments