상세 컨텐츠

본문 제목

프록시 패턴(Proxy Pattern)

Spring/디자인패턴

by Chan.94 2021. 10. 9. 10:34

본문

반응형

Proxy는 실제 Target의 기능을 수행하면서 기능을 확장하거나 추가하는 실제 객체(Object)를 의미한다.
Proxy Pattern은 Client가 Target에 접근하는 방식을 변경해 주는 역할을 한다.

 

출처 : https://sourcemaking.com/design_patterns/proxy

Client가 요청(RealSubject의 dolt()메서드 호출)을 하면, Proxy가 대신 RealSubject의 dolt()메서드 호출을 하고 그 반환 값을 클라이언트에게 전달하는 구조이다.

우리는 부수적인 업무로직을 Proxy에 코딩하고 주요한 업무 로직만 클래스에 구현할 수 있게 된다.


JAVA 예제

출처 : https://sourcemaking.com/design_patterns/proxy

public interface Payment {
    int amount(int payMoney);
}

public class FundsPaidFromAccount implements Payment{

    @Override
    public int amount(int payMoney) {
        System.out.println(payMoney);
        return payMoney;
    }
}

public class CheckProxy implements Payment{

    Payment payment = new FundsPaidFromAccount();

    @Override
    public int amount(int payMoney) {

        System.out.println("***************ProxyTest Start***************");
        int money = payment.amount(payMoney);
        System.out.println("***************ProxyTest End***************");

        return money;
    }
}

public class Main {
    public static void main(String[] args) {
        Payment payment = new CheckProxy();
        payment.amount(100000);
    }
}

프록시 패턴은 Spring AOP에 적용된다.

Spring AOP에 대해서는 [Spring/개념] - Spring AOP (Proxy) 포스팅을 확인 바란다.

반응형

관련글 더보기

댓글 영역

>