티스토리 뷰
반응형
🚀 스프링에서 디자인 패턴의 중요성
디자인 패턴
은 실제 개발 현장에서 비즈니스 요구 사항을 프로그래밍으로 처리하면서 만들어진 다양한 해결책 중에서 많은 사람들이
인정한 가장 효율적인 예시를 정리한 패턴의 집합이다.
🌠 프록시 패턴 - 개방 폐쇄 원칙(OCP), 의존 역전 원칙(DIP)
프록시는 대리자/ 대변인의 역할을 수행하는 존재를 말한다.
디자인 패턴에서의 프록시는 서비스 메서드의 반환값에 가감하지 않는 것이 특징이다. 다만, 제어의 흐름을 제어하거나 다른 로직을
수행하기 위해 사용하는 패턴이다.
☄ 프록시 패턴 - 전
public class Service implements IService {
public String runSomething() {
return "서비스 짱!!!";
}
}
public class ClientWithNoProxy {
public static void main(String[] args) {
// 프록시를 이용하지 않은 호출
Service service = new Service();
System.out.println(service.runSomething());
}
}
☄ 프록시 패턴 - 후
public interface IService {
String runSomething();
}
public class Service implements IService {
public String runSomething() {
return "서비스 짱!!!";
}
}
public class Proxy implements IService {
IService service1;
public String runSomething() {
System.out.println("호출에 대한 흐름 제어가 주목적, 반환 결과를 그대로 전달");
service1 = new Service();
return service1.runSomething();
}
}
public class ClientWithProxy {
public static void main(String[] args) {
// 프록시를 이용한 호출
IService proxy = new Proxy();
System.out.println(proxy.runSomething());
}
}
🌠 정리
제어 흐름을 조정하기 위한 목적으로 중간에 대리자를 두는 패턴
- 대리자는 실제 서비스와 같은 이름의 메서드를
인터페이스
를 통해 구현한다. - 대리자는 실제 서비스에 대한 참조 변수를 갖는다.(합성)
- 대리자는 실제 서비스의 같은 이름을 가진 메서드를 호출하고, 그 값을 클라이언트에게 돌려준다.
- 대리자는 실제 서비스의 메소드 호출 전후에 별도의 로직을 수행할 수도 있다.
🧾 Reference
반응형
'SPRING 🍃 > 디자인패턴' 카테고리의 다른 글
디자인 패턴 - 템플릿 메서드 패턴 (0) | 2022.04.11 |
---|---|
디자인 패턴 - 전략 패턴 (0) | 2022.04.10 |
디자인 패턴 - 싱글톤 패턴 (0) | 2022.04.09 |
디자인 패턴 - 데코레이터 패턴 (0) | 2022.04.08 |
디자인 패턴 - 어댑터 패턴 (0) | 2022.04.05 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- spring-cloud
- ajax
- security
- 자바
- kakao
- Matlab
- 매트랩
- C언어
- 수학
- 스프링부트
- java
- 백준
- nginx
- 스프링
- 릿코드
- 면접
- CS
- Algorithm
- Spring
- Solid
- OOP
- 그래프
- interview
- 디자인패턴
- 프로그래머스
- JPA
- 알고리즘
- springboot
- docker
- 자격증
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함