본문 바로가기
Study/Design Pattern

SOLID

by _royJang 2022. 3. 18.

SOLID란?

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

SOLID의 5가지 내용

  1. SRP : 단일 책임 원칙
  2. OCP : 개방-폐쇄 원칙
  3. LSP : 리스코프 치환 원칙
  4. ISP : 인터페이스 분리 원칙
  5. DIP : 의존관계 역전 원칙

하나하나 뜯어 보자!

SRP (single responsibility principle)

  • 한 클래스는 하나의 책임만을 가져야 한다.
  • 쉽게 말해 변화가 있을 때 최대한 적은 수정을 할 수 있어야 한다.

OCP (Open/Closed principle)

  • 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.
  • 다형성을 최대한 활용해야 함.

LSP (Liskov substitution principle)

  • 프로그램의 속성을 변경하지 않고 객체를 치환할 수 있어야 한다.

ISP (Interface segregation principle)

  • 범용 인터페이스 하나보다는 세부적인 인터페이스 여러개가 있어야 한다.

DIP (Dependency inversion principle)

  • 상위 모듈은 하위 모듈에 의존해서는 안된다. 상위 모듈과 하위 모듈 모두 추상화에 의존해야 한다.
  • 추상화는 세부 사항에 의존해서는 안된다. 세부사항이 추상화에 의존해야 한다.