프록시 패턴 예제

프록시 패턴 예제

제목 인터페이스를 정의하면 RealSubject 대신 프록시 오브젝트가 있으면 클라이언트에 투명하게 표시됩니다. 프록시 패턴에서는 기능을 외부 세계에 인터페이스하기 위해 원래 개체를 갖는 객체를 만듭니다. 개체에 대한 액세스를 제어하는 기능이 필요한 경우도 있습니다. 예를 들어 비용이 많이 드는 일부 개체의 몇 가지 메서드만 사용해야 하는 경우 완전히 필요할 때 해당 개체를 초기화합니다. 그 시점까지 우리는 무거운 물체와 동일한 인터페이스를 노출 하는 일부 라이트 개체를 사용할 수 있습니다. 이러한 라이트 오브젝트를 프록시라고 하며, 필요한 경우 무거운 오브젝트를 인스턴스화하고 그 다음에는 일부 라이트 오브젝트를 대신 사용합니다. 이 예제에서는 프록시 패턴을 사용하여 비효율적인 제3자 YouTube 통합 라이브러리에 지연 초기화 및 캐싱을 구현하는 데 도움이 됩니다. 프록시 [1] 디자인 패턴은 유연하고 재사용 가능한 객체 지향 소프트웨어, 즉 구현, 변경, 테스트 및 구현하기 쉬운 객체를 설계하기 위해 반복되는 설계 문제를 해결하는 방법을 설명하는 23개의 잘 알려진 GoF 디자인 패턴 중 하나입니다. 재사용. 프록시 디자인 패턴의 GoF 정의에 따라 프록시 개체는 다른 개체에 대한 액세스를 제어하는 서로게이트 또는 자리 표시자를 제공합니다.

프록시는 기본적으로 보안상의 이유 나 완전히 초기화 된 원본 개체를 만드는 데 드는 비용과 같은 여러 가지 이유로 인해 만드는 의도 된 개체를 대신합니다. 프록시 클래스 프록시 이미지는 실제 이미지 클래스 자체가 아닌 다른 시스템에서 실행되며 실제 이미지 RealImage를 나타낼 수 있습니다. 이미지 정보는 디스크에서 액세스합니다. 프록시 패턴을 사용하면 ProxyImage의 코드는 이미지의 여러 로딩을 방지하여 메모리 절약 방식으로 다른 시스템에서 액세스합니다. 이 예제에서 보여 준 지연 로드는 프록시 패턴의 일부가 아니라 프록시를 사용하여 가능한 이점일 뿐입니다. 프록시 패턴은 원래 서비스 개체와 동일한 인터페이스를 가진 새 프록시 클래스를 만들 것을 제안합니다. 그런 다음 프록시 개체를 원래 개체의 모든 클라이언트에 전달하도록 앱을 업데이트합니다. 클라이언트로부터 요청을 받으면 프록시는 실제 서비스 개체를 만들고 모든 작업을 위임합니다.

이렇게 하면 프록시 개체를 통해 작업하여 주제에 액세스할 때 추가 기능을 수행할 수 있습니다. 예를 들어 중요한 개체에 액세스하는 클라이언트의 액세스 권한을 확인합니다. 주체를 대신하려면 프록시가 주체 인터페이스를 구현해야 합니다. 클라이언트는 주체 또는 프록시로 작동하는지 여부를 알 수 없습니다. 예를 들어 중요한 개체에 액세스할 때 클라이언트에 필요한 액세스 권한이 있는지 확인할 수 있어야 합니다. 프록시는 `대신`, `대신` 또는 `대신` 또는 `대신`을 의미하며 프록시디자인 패턴을 직접 설명하는 문자 적 의미입니다. 프록시를 서로게이트, 핸들 및 래퍼라고도 합니다. 그들은 어댑터 및 데코레이터와 구조에 밀접하게 관련되어 있지만 목적은 아닙니다.

데코레이터 패턴은 프록시 패턴과 밀접한 관련이 있으므로 다음 주에 살펴보겠습니다. 프록시의 목적에 따라 프록시의 많은 다른 맛이 있다. 개체에 대한 액세스 권한을 제어하는 보호 프록시가 있을 수 있습니다. 가상 프록시는 개체를 만드는 데 비용이 많이 드는 경우를 처리하고 원격 프록시는 원격 개체에 대한 액세스를 제어합니다.

Share this post