SOLID

2024-09-25

주로 OOP의 5대 원칙이라고 불리는 것들. 매우 주관적이다.

객체지향 설계의 도움을 줄 뿐이지 모든 상황에서 적용할 수 있는 것은 아니다.

절대 만능이 아니고 사용했을 때 안티 패턴이 되는 경우도 존재한다.

그냥 이것도 결국 Best Practice. 일 뿐이다.

SRP 단일 책임 원칙

하나의 클래스, 메서드는 하나의 역할만 수행해야 한다.

  • 모듈, 클래스 : 하나의 역할
  • 메서드 : 하나의 책임

God Object를 피하자.

OCP 개방 폐쇄 원칙

불변으로 제공하고, 변화는 확장으로 제공

LSP 리스코프 치환 원칙

하위 클래스는 상위 클래스를 사용하는 곳에 대체 가능해야 한다.

  • 다형성을 고려하자.

ISP 인터페이스 분리 원칙

하나의 인터페이스는 하나의 기능이어야 한다.

  • 자신의 역할이 아닌 책임은 다른 인터페이스로 분리하자.

DIP 의존관계 역전 원칙

의존 대상은 파생 클래스가 아닌 추상 클래스이어야 한다.

  • 구현 클래스를 직접 사용하지 말자.