Spring ‐ 객체 지향 설계와 스프링 - dnwls16071/Backend_Study_TIL GitHub Wiki
📚 객체 지향 설계 원칙(SOLID)
-
SRP(Single Responsibility Principle) : 단일 책임 원칙
- 한 클래스는 하나의 책임만 져야 한다.
- 변경 시 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것이다.
-
OCP(Open Closed Principle) : 개방-폐쇄 원칙
- 다형성을 통한 확장
- 기존 코드를 변경하지 않고 확장을 할 수 있어야 한다.
- 인터페이스를 구현한 클래스를 만들어 새로운 기능을 구현한다.
-
LSP(Liskov Substitution Principle) : 리스코프 치환 원칙
- 프로그램의 객체는 하위 타입의 인스턴스로 바꿀 수 있어야 한다.
- 대표적인 예시로 컬렉션 프레임워크를 들 수 있다.
-
ISP(Interface Substitution Principle) : 인터페이스 분리 원칙
- 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.
- 하나의 범용 인터페이스에서 불필요한 인터페이스를 구현해야 되는 문제가 발생하므로 이를 해결하기 위해서 여러 인터페이스로 분리하는 것을 권장한다.
- 인터페이스가 명확해지고 대체 가능성이 높아진다.
-
DIP(Dependency Inversion Principle) : 의존관계 역전의 원칙
- 구현체 클래스에 의존하기보다는 추상 인터페이스에 의존하라는 뜻이다.