좋은 객체 지향 설계의 5가지 원칙(SOLID)
SOLID
좋은 객체 지향 설계의 5가지 원칙
SRP 단일 책임 원칙 (Single responsibility principle)
- 한 클래스는 하나의 책임만!
- 변경이 있을 때 파급 효과가 적으면 원칙을 잘 따른 것!
OCP 개방-폐쇄 원칙 (Open/closed principle)
- 확장에는 열려 있고, 변경에는 닫혀 있어야 함!
- 다형성을 활용하자!
- 구현체 타입을 추상화 타입으로 사용하자!
LSP 리스코프 치환 원칙 (Liskov substitution principle)
- 예) 인터페이스의 엑셀은 앞으로 가라는 기능에, 뒤로 가게 구현하면 LSP 위반이다.
ISP 인터페이스 분리 원칙 (Interface segregation principle)
- 자동차 인터페이스 -> 운전 인터페이스, 정비 인터페이스로 분리
- 사용자 클라이언트 -> 운전자 클라이언트, 정비사 클라이언트로 분리
DIP 의존관계 역전 원칙 (Dependency inversion principle)
- 구현체에 의존하지 않고, 추상화에 의존해야한다.