프록시는 제어 프름을 조정하기 위한 목적을 가진 중간 대리자
Proxy Pattern 은 OCP ( Open Closed Principle ) 와 DIP ( Dependency Inversion Principle ) 을 적용
Ex )
Proxy 를 적용하지 않은 상태
public class Service {
public String runSomething() {
return "runSomething";
}
}
public class ClientWithNoProxy {
public static void main(String [] args){
Service service = new Service();
System.out.println(service.runSomething());
}
}
Proxy 를 적용한 상태
public interface IService {
String runSomethings();
}
public class Service implements IService{
@Override
public String runSomethings() {
return "runSomething";
}
}
public class Proxy implements IService{
IService service;
@Override
public String runSomethings() {
System.out.println("호출에 대한 흐름 제어가 주목적, 반환 결과를 그대로 전달");
service = new Service();
return service.runSomethings();
}
}
public class ClientWithProxy {
public static void main(String [] args){
IService proxy = new Proxy();
System.out.println(proxy.runSomethings());
}
}