1. 프록시 패턴이란?
- 실제 기능을 수행하는 객체 대신 가상의 객체를 사용해 로직의 흐름을 제어
- 어떤 객체를 사용하고자 할 때 해당 객체를 대행하는 객체를 통해 대상 객체에 접근
- 흐름제어만 할 뿐 결과값을 조작하거나 변경시키면 안됨
2. 프록시 패턴 예시
Phone 인터페이스
public interface Phone {
public String turnOn();
}
IPhone 클래스
public class IPhone implements Phone {
@Override
public String turnOn() {
return "IPhone turn on";
}
}
PhoneProxy 클래스
public class PhoneProxy implements Phone {
Phone iPhone;
@Override
public String turnOn() {
System.out.println("Proxy 거쳐감");
iPhone = new IPhone();
return iPhone.turnOn();
}
}
Main 클래스
public class Main {
public static void main(String[] args) {
Phone proxy = new PhoneProxy();
System.out.println(proxy.turnOn());
}
}
// 출력
// Proxy 거쳐감
// IPhone turn on
인터페이스를 중간에 두어 구체클래스들에게 영향을 받지 않게 설계하였으며, 직접 접근하지 않고 Proxy를 통해 한번 더 우회해서 접근하도록 구현되어 있다. 이를 통해 OCP, DIP 설계 원칙을 지킬 수 있다.
'디자인 패턴 > 구조 패턴' 카테고리의 다른 글
데코레이터 패턴 (Decorator Pattern) (0) | 2021.08.29 |
---|---|
파사드 패턴 (Facade Pattern) (0) | 2021.08.27 |
어댑터 패턴 (Adapter Pattern) (0) | 2021.08.26 |