디자인 패턴

Proxy Pattern - 구조

iksadnorth 2023. 7. 19. 20:31

👣 문제 상황

특정 객체에 대한 접근을 제어하거나 공통적으로 부가 기능을 부여해야 할 때, 사용함.

목적 : 객체를 접근하기 전에 일괄 적용하고 싶은 기능 부여

👣 해결 방법

interface Service {
    void do();
}
class RealService1 implements Service {
    @Override
    public void do() {
        System.out.println("Do it By RealService1");
    }
}

class RealService2 implements Service {
    @Override
    public void do() {
        System.out.println("Do it By RealService2");
    }
}

class ServiceProxy implements Service {
    private Service service;

    public ServiceProxy(Service service) {
    	this.service = service;
    }

    @Override
    public void display() {
        System.out.println("PreTask In Proxy");
        service.do();
        System.out.println("PostTask In Proxy");
    }
}

public class Main {
    public static void main(String[] args) {
        Service service1 = new ServiceProxy(new RealService1());
        Service service2 = new ServiceProxy(new RealService2());

        service1.display();
        service2.display();
    }
}

'디자인 패턴' 카테고리의 다른 글

MVC Pattern - 아키텍쳐  (0) 2023.07.19
Iterator Pattern - 행위  (0) 2023.07.19
Observer Pattern - 행위  (0) 2023.07.19
Strategy Pattern - 행위  (0) 2023.07.19
Factory Pattern - 생성  (0) 2023.07.19