Proxy Pattern
다른 객체에 대한 접근을 제어하기 위해 대리 객체를 사용
- 프록시 객체는 실제 객체와 동일한 인터페이스 구현하여 실제 객체처럼 작동. 이를 통해 접근 제어 및 추가 기능 수행
public class App {
public static void main(String[] args) {
Doorman doorman = new Doorman();
DoormanProxy proxy = new DoormanProxy(doorman);
Animal cat = new Cat();
Animal mouse = new Mouse();
proxy.hello(cat);
proxy.hello(mouse);
}
}
public class DoormanProxy {
// 도어맨을 호출하고 animal 쫓아내기
private Doorman doorman;
public DoormanProxy(Doorman doorman) {
this.doorman = doorman;
}
// 행위 만들기
public void hello(Animal animal) {
System.out.println("안녕");
doorman.쫓아내(animal);
}
}
public class Doorman {
public void 쫓아내(Animal animal) {
System.out.println(animal.getName() + " 쫓아내");
}
}
public abstract class Animal {
public abstract String getName();
}
public class Cat extends Animal {
private String name = "고양이";
public String getName() {
return name;
}
}
public class Mouse extends Animal {
private String name = "쥐";
public String getName() {
return name;
}
}
Share article