[인프런] 스프링 핵심 원리 기본편 - 좋은 객체 지향 설계의 5가지 원칙(SOLID) 강의 내용 정리
SRP 단일 책임 원칙
Single Responsibility Principle
한 클래스는 하나의 책임만
- 어떤 변경사항이 있을 때 한 포인트만 고칠 수 있다면 된다는 개념으로
OCP 개방-폐쇄 원칙
Open/Closed Principle
확장에는 열려있으나, 변경에는 닫혀있어야
- 다형성을 이용해서 메인 code쪽을 안고칠 수 있게
LSP 리스코프 치환 원칙
Liskov Substitution Principle
하위 타입의 인스턴스로 바꿀 때 프로그램의 정확성을 깨뜨리면 안된다
- 인터페이스의 규약을 어기지 않는 선에서 상속, 구현을 하자
ISP 인터페이스 분리 원칙
Interface Segregation Principal
범용 인터페이스보다 여러 개의 인터페이스가 좋다
DIP 의존관계 역전 원칙
Dependency Inversion Principle
추상화에 의존해야지, 구체화에 의존하면 안된다
- 역할(Role). 인터페이스 에 의존해야지, 실제 구현체는 알 필요가 없다.