SOLID
-SRP(Single responsibility principle) 단일 책임 원칙
-중요한 기준은 변경임(변경시 파급효과가 적어야함)
-OCP(Open/Closed principle) 개방-폐쇄 원칙
-확장에는 열려있으나 변경에는 닫혀있음(역할과 구현)
-그러나 구현 객체를 변경하려면 클라이언트 코드를 변경해야함(OCP 위반)
-LSP(Liskov substitution principle) 리스코프 치환 원칙
-인터페이스 규약,의도 맞게 구현
-ISP(Interface segregation principle) 인터페이스 분리 원칙
-범용 인터페이스 하나보다 여러개의 인터페이스가 더 좋음(독립, 명확, 대체가능성)
-DIP(Dependency inversion principle) 의존관계 역전 원칙
-구체화(구현 객체)가 아니라 추상화(인터페이스)에 의존 해야함
-클라이언트가(MemberService) 구현 클래스(MemoryMemberRepository)를 직접 선택해야한다면 DIP 위반
정리
-다형성 만으로는 OCP,DIP를 지킬수 없음
객체 지향 설계와 스프링
스프링은 DI(Dependency Injection), DI 컨테이너 제공으로 다형성 + OCP, DIP를 가능하게 지원
-> 클라이언트 코드의 변경 없이 기능 확장
'웹 프로그래밍 > 스프링' 카테고리의 다른 글
스프링 컨테이너와 스프링 빈 (0) | 2023.02.14 |
---|---|
IoC, DI, 컨테이너 (0) | 2023.02.14 |
AppConfig (0) | 2023.02.14 |
객체 지향 프로그래밍 (0) | 2023.02.12 |
스프링 이란? (0) | 2023.02.12 |