SOLID
클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리
SRP: 단일 책임 원칙(single responsibility principle)
OCP: 개방-폐쇄 원칙 (Open/closed principle)
- 확장에는 열려있으나, 변경에는 닫혀있어야 한다.
LSP: 리스코프 치환 원칙 (Liskov substitution principle)
- 상속 과정에서 해당 기능의 근본이 바뀌면 안된다.
ISP: 인터페이스 분리 원칙 (Interface segregation principle)
- 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.
DIP: 의존관계 역전 원칙 (Dependency inversion principle)
- 추상화에 의존해야하며, 구체화에 의존하면 안된다.