SOLID

지꾸이·2025년 4월 4일

Spring

목록 보기
4/6

SOLID

클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정의

  • SRP : 단일 책임 원칙

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

  • OCP : 개방-폐쇄 원칙

    확장에는 열려있으나, 변경에는 닫혀있어야 한다.

  • LSP : 리스코프 치환 원칙

    프로그램의 객체는 프로그램의 정확성을 깨트리지 않으면서 하위 타입의 인스턴스를 바꿀 수 있어야 한다.

  • ISP : 인터페이스 분리 원칙

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

  • DIP : 의존간계 역전 원칙

    추상화에 의존해야지, 구체화에 의존해선 안된다.
    클라이언트에 의존하지말고 인터페이스에 의존해야한다.

정리

  • 객체 지향의 핵심은 다형성
  • 다형성 만으로 쉽게 부품을 갈아 끼우듯 개발할 수 없다.
  • 다형성 만으로는 구현 객체를 변경할 때 클라이언트 코드도 함께 변경된다
  • 다형성 만으로 OCP, DIP를 지킬 수 없다.
  • 뭔가 더 필요하다.
profile
백엔드

0개의 댓글