프록시 패턴(proxy pattern)

JunSeong_Park·2022년 12월 31일
0

Proxy Pattern

프록시는 제어 프름을 조정하기 위한 목적을 가진 중간 대리자

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());
    }
}
  1. Service 객체 생성
  2. 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());
    }
}
  1. main 에서 Proxy method 호출
  2. Proxy 에서 IService method 가로채기
  3. Proxy 에서 Service method 호출
  4. Service 에서 IService method 가로채기
  5. Service method 호출

출처 : 스프링 입문을 위한 자바

profile
안녕하세요 언어에 구애 받지 않는 개발자가 되고 싶은 박준성입니다

0개의 댓글