SOLID

Mina Park·2022년 8월 13일
0

스프링 핵심 원리 - 기본편

좋은 객체지향 설계의 5가지 원칙

  1. SRP: Single responsibility principle(단일 책임 원칙)
    "하나의 클래스는 하나의 책임만 가져야 한다."
  • 중요한 기준: 변경 -> 변경 발생시 파급효과가 적다 = 단일 책임 원칙을 잘 따른 것
  1. OCP: Open/closed principle(개방-폐쇄 원칙)
    "소프트웨어 요소는 확장에는 열려있으나 변경에는 닫혀있어야 한다."
  • 다형성을 활용
  1. LSP: Liskov substitution principle(리스코프 치환 원칙)
    "프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다."
  • 단순히 컴파일 성공을 넘어서는 이야기
  1. ISP: Interface segregation principle(인터페이스 분리 원칙)
    "특정 클라이언트를 위한 인터페이서 여러개가 범용 인터페이스 하나보다 낫다."
  • 인터페이스가 명확해지고 대체 가능성이 높아진다
  1. DIP: Dependency inversion principle(의존관계 역전 원칙)
    "프로그래머는 '추상화에 의존해야지, 구체화에 의존하면 안된다.'"
  • 구현 클래스에 의존하지말고 인터페이스에 의존하라

  • 객체 지향의 핵심은 다형성
  • 다형성만으로는 부품 교체하듯 개발할 수 없으며, 구현객체 변경시 클라이언트 코드도 함께 변경
  • 다형성만으로는 OCP, DIP를 지킬 수 없다
    then... needs what?

0개의 댓글