> Java > java지도 시간 > 본문

대리

Susan Sarandon
풀어 주다: 2024-09-22 22:15:41
원래의
379명이 탐색했습니다.

대리

프록시는 구조적 디자인 패턴 중 하나이며, 원본 개체에 대한 액세스를 제어하는 ​​데 사용되는 대리 또는 자리 표시자 개체를 만드는 데 사용됩니다.
이는 제어 수준을 추가하는 중개자 역할을 하며 실제 객체에 요청을 위임하기 전후에 추가 작업을 수행할 수 있습니다.

주요 개념:
프록시 객체: 실제 객체를 나타내며 이에 대한 접근을 제어합니다.
실제 객체(주제): 작업을 수행하는 실제 객체
클라이언트: 실제 객체가 아닌 프록시와 직접 상호작용하는 엔터티

이미지를 예로 들어 이해해 보겠습니다.

//Object interface
public interface Image{
    public void display();
}


//Real object
public class RealImage implements Image {
    private String file;

    public RealImage(String fileName){
        this.file = fileName;
        loadImageFromDisk();
    }
    @Override
    public void display(){
        System.out.println("Rendering image : "+ file);
    }
    private void loadImageFromDisk(){
        System.out.println("Loading image "+file+" from disk");
    }
}

//대리 class
public class 대리Image implements Image {
    private Image image;
    private String file;

    public 대리Image(String fileName){
        this.file =fileName;
    }
    @Override
    public void display(){
        if(image ==null){// create object of RealImage only if the image reference is null, thus resulting in LazyIntialization 
            //( i.e. Initializing the object only when it is needed not beforehand)
            image = new RealImage(file);
        }
        image.display();
    }

}

// client
public class Main {
    public static void main(String args[]){
        Image image = new 대리Image("wallpaper.png");
        //image is loaded and displayed for the first time
        image.display();
        //image will not be loaded again, only display will be called 
        image.display();
    }
}
로그인 후 복사

출력:

Loading image wallpaper.png from disk
Rendering image : wallpaper.png
로그인 후 복사

사용 사례:
지연 초기화: 꼭 필요할 때까지 객체 생성을 지연합니다.
액세스 제어: 사용자 역할이나 권한에 따라 특정 방법에 대한 액세스를 제한합니다.
로깅: 로깅 또는 모니터링 기능을 추가합니다.

위 내용은 대리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿