SOLID
객체 지향 설계의 다섯가지 원칙을 뜻하는 용어
SRP(Single Responsibility Principle): 단일 책임 원칙
OCP(Open-Closed Principle): 개방 폐쇄 원칙
LSP(Liskov Subsitution Principle): 리스코프 치환 원칙
ISP(Interface Segregation Principle): 인터페이스 분리 원칙
DIP(Dependency Inversion Principle): 의존관계 역전 원칙
개방 폐쇄 원칙 (OCP, Open-Closed Principle)
클래스나 모듈의 확장은 열려있고 변경은 닫혀 있어야 한다는 원칙으로
클래스나 모듈의 로직의 확장이 필요할 때 확장은 가능하지만,
이러한 확장의 결과가 다른 클래스에 영향을 주어서는 안된다는 것이다.
즉, 인터페이스를 통하여 클래스 간의 관계를 느슨하게 유지하여
핵심 기능의 코드에는 영향을 주지 않고 확장할 수 있게 하는 것을 말한다.
높은 응집도와 낮은 결합도
응집도가 높다는 것은 모듈과 클래스가 하나의 책임이나 하나의 관심사에만 집중되어 있다는 것
결합도가 낮다는 것은 모듈이나 클래스 간의 관계가 느슨하게 연결되어 있다는 것 (독립적)
결합도가 낮을 수록 구성이 깔끔하고, 변화와 확장이 빠르고 편리하다.
전략 패턴
자신의 기능 맥락(컨텍스트)에서 변경기 필요한 알고리즘(로직, 기능)을 인터페이스를 통해 외부로 분리시키고,
이를 구체적으로 구현한 알고리즘 클래스를 상황에 맞게 사용하게 하는 디자인 패턴
UserDao를 해당 전략 패턴의 컨텍스트라고 볼 수 있는데, 인터페이스를 통해 커넥션 기능을 분리하고
이를 구체적으로 구현한 클래스를 클라이언트를 통해 상황에 맞게 사용하기 때문이다.
'Back-End > Spring' 카테고리의 다른 글
싱글톤 레지스트리 / 오브젝트 스코프 (0) | 2023.06.07 |
---|---|
스프링 IoC (0) | 2023.06.05 |
IoC(Inversion of Control, 제어의 역전) (0) | 2023.06.05 |
초난감 DAO 리팩토링하기 (0) | 2023.06.05 |
Spring Framework (0) | 2023.06.05 |