프록시 패턴

다른 객체에 대한 액세스를 제어하기 위해 대리 또는 자리 표시자를 제공합니다.



참가자들


  • 프록시: 프록시가 실제 주제에 액세스할 수 있도록 하는 참조를 유지합니다. 프록시는 RealSubject와 Subject 인터페이스가 동일한 경우 Subject를 참조할 수 있습니다. 프록시가 실제 주제를 대체할 수 있도록 주제와 동일한 인터페이스를 제공합니다. 실제 주체에 대한 액세스를 제어하고 생성 및 삭제를 담당할 수 있습니다. 다른 책임은 프록시 종류에 따라 다릅니다.
    원격 프록시는 요청과 해당 인수를 인코딩하고 인코딩된 요청을 다른 주소 공간의 실제 주체로 보내는 역할을 합니다.
    가상 프록시는 실제 주제에 대한 추가 정보를 캐시하여 액세스를 연기할 수 있습니다. 예를 들어,
    Motivation의 ImageProxy는 실제 이미지의 범위를 캐시합니다.
    보호 프록시는 호출자가 요청을 수행하는 데 필요한 액세스 권한을 가지고 있는지 확인합니다.
  • 주제: RealSubject가 예상되는 모든 곳에서 Proxy를 사용할 수 있도록 RealSubject 및 Proxy에 대한 공통 인터페이스를 정의합니다.
  • RealSubject: 프록시가 나타내는 실제 개체를 정의합니다.

  • 암호




    public class Main {
    
        public static void main(String[] args) {
            Proxy proxy = new Proxy();
            proxy.request();
        }
    }
    
    public interface Subject {
        void request();
    }
    
    public class RealSubject implements Subject {
    
        @Override
        public void request() {
            System.out.println("Called RealSubject.Request()");
        }
    }
    
    public class Proxy implements Subject {
    
        private RealSubject realSubject;
    
        @Override
        public void request() {
            if (realSubject == null) {
                realSubject = new RealSubject();
            }
            realSubject.request();
        }
    }
    

    산출



    Called RealSubject.Request()
    




    eidherjulian61 / 디자인 패턴








    좋은 웹페이지 즐겨찾기