프록시 패턴

화낼거양's avatar
Nov 12, 2024
프록시 패턴
Contents
예시
 
 
프록시 패턴(Proxy Pattern)은 다른 객체에 대한 접근을 제어하기 위해 대리자 객체(프록시)를 사용하는 패턴입니다.
프록시는 실제 객체를 감싸고, 사용자가 실제 객체와 상호 작용하는 것처럼 보이게 하면서도, 여러 가지 부가 기능(예: 접근 제어, 로깅, 캐싱 등)을 수행할 수 있습니다.
 
 

예시

 

기존에 작성한 클래스 파일 내용 :

 
public class Doorman implements Todoable { // DIP > Dependency Inversion Principle public void 쫒아내(Animal animal) { System.out.println(animal.getName() + "쫒아내"); } }
 
Animal 객체를 받아 해당 Animal의 이름+쫒아내 라는 문자열을 출력하도록 메소드가 작성되어있습니다.
‘Animal의 이름+쫒아내’ 문자열이 출력되기 이전에 ‘안녕’이라는 문자열을 먼저 출력하고 싶다면 단순히 해당 클래스의 메소드 내용을 수정하는 방법도 있으나, 프록시 패턴을 이용하면 기존 파일의 작성 내용을 수정하지 않고, ‘안녕’이라는 문자열을 먼저 출력할 수 있습니다.
 

프록시 패턴 적용에 필요한 클래스 파일 예제 :

 
public class DoormanProxy implements Todoable { Doorman doorman; public DoormanProxy(Doorman doorman) { this.doorman = doorman; } public void 쫒아내(Animal animal) { System.out.println("안녕"); doorman.쫒아내(animal); } }
 
DoormanProxy 를 생성할 때 Doorman 객체를 전달 받게 작성하였으며, DoormanProxy 객체의
‘쫒아내(Animal animal)’ 메소드를 사용하였을 때 먼저 ‘안녕’ 이라는 문자열을 출력한 뒤, Doorman 객체의 쫒아내 메소드를 호출함으로써 기존의 Doorman 클래스 파일을 수정하지 않아도 됩니다.
 
Share article

moohyun