SOLID
2024-09-25
주로 OOP의 5대 원칙이라고 불리는 것들. 매우 주관적이다.
객체지향 설계의 도움을 줄 뿐이지 모든 상황에서 적용할 수 있는 것은 아니다.
절대 만능이 아니고 사용했을 때 안티 패턴이 되는 경우도 존재한다.
그냥 이것도 결국 Best Practice. 일 뿐이다.
SRP 단일 책임 원칙
하나의 클래스, 메서드는 하나의 역할만 수행해야 한다.
- 모듈, 클래스 : 하나의 역할
- 메서드 : 하나의 책임
God Object를 피하자.
OCP 개방 폐쇄 원칙
불변으로 제공하고, 변화는 확장으로 제공
LSP 리스코프 치환 원칙
하위 클래스는 상위 클래스를 사용하는 곳에 대체 가능해야 한다.
- 다형성을 고려하자.
ISP 인터페이스 분리 원칙
하나의 인터페이스는 하나의 기능이어야 한다.
- 자신의 역할이 아닌 책임은 다른 인터페이스로 분리하자.
DIP 의존관계 역전 원칙
의존 대상은 파생 클래스가 아닌 추상 클래스이어야 한다.
- 구현 클래스를 직접 사용하지 말자.