디자인 패턴
은 실제 개발 현장에서 비즈니스 요구 사항을 프로그래밍으로 처리하면서 만들어진 다양한 해결책 중에서 많은 사람들이
인정한 가장 효율적인 예시를 정리한 패턴의 집합이다.
프록시는 대리자/ 대변인의 역할을 수행하는 존재를 말한다.
디자인 패턴에서의 프록시는 서비스 메서드의 반환값에 가감하지 않는 것이 특징이다. 다만, 제어의 흐름을 제어하거나 다른 로직을 수행하기 위해 사용하는 패턴이다.
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());
}
}
제어 흐름을 조정하기 위한 목적으로 중간에 대리자를 두는 패턴
인터페이스
를 통해 구현한다.