SOLID (좋은 객체 지향 설계의 5가지 원칙)
- 클린코드로 유명한 로버트 마틴이 5가지 원칙을 정리한 것
- SRP(single responsibility principle) : 단일 책임 원칙
- 하나의 클래스는 하나의 책임
- OCP(Open/closed principle) : 개방-폐쇄 원칙
- 확장에는 열려있으나 변경에는 닫힘
- LSP(Liskov substitution principle) : 리스코프 치환 원칙
- 다형성에서 하위 클래스는 인터페이스 규약을 다 지켜야 한다.
- 컴파일 성공해도 확인해야함.
- EX) 엑셀을 밟으면 뒤로가도록 구현. (잘못됨)
- ISP(Interface segregation principle) : 인터페이스 분리 원칙
- 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.
- DIP(Dependency inversion principle): 의존관계 역전 원칙
- 구현 클래스에 의존하지 않고, 인터페이스에 의존해야 한다.
- MemberService 클라이언트가 구현 클래스를 직접 선택 (위반)
- MemberRepository m = new MemoryMemberRepository();
- 구현 클래스에 의존하지 않고, 인터페이스에 의존해야 한다.
다형성만으로는 OCP, DIP를 지킬 수 없다.
- 스프링 기술로, OCP, DIP 지원
- 스프링 기술
- DI : 의존관계, 의존성 주입
- DI 컨테이너 제공
- 클라이언트 코드 변경없이 기능 확장
- 쉽게 부품 교체하듯 개발
'공부 > Spring' 카테고리의 다른 글
[Spring] 의존성 주입 3가지 방법(생성자 주입을 사용하자) (0) | 2022.04.26 |
---|---|
[Spring](스프링 핵심 원리 - 기본편) 스프링 핵심 원리 이해1 - 예제 만들기 (0) | 2022.04.19 |
[Spring] 좋은 객체지향 프로그래밍이란? (0) | 2022.04.19 |
[Spring] 스프링의 탄생과 개념 (0) | 2022.04.19 |
Querydsl (0) | 2021.10.04 |
댓글