ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 프록시 패턴
    Java & 배경지식/패턴 2020. 2. 17. 21:12
    반응형

    프록시 패턴이란?

    • 프록시를 사용하는 방법중에서 타깃에 대한 접근 방법을 제어하려는 목적을 가진 경우
    • 타깃의 기능을 확장하거나 추가하지 않고, 클라이언트가 타깃에 접근하는 방식을 변경해준다.

    public interface Image {
    	public void displayImage();
    }

     

    public class ProxyExample {
    	public static void main(String[] args) {
    		Image image1 = new ProxyImage("HiRes_10MB_Photo1");
    		Image image2 = new ProxyImage("HiRes_10MB_Photo2");
    
    		image1.displayImage(); // loading necessary
    		image2.displayImage(); // loading necessary
    	}
    }

     

    public class ProxyImage implements Image {
    	private String filename;
    	private Image image;
    
    	public ProxyImage(String filename) {
    		this.filename = filename;
    	}
    
    	@Override
    	public void displayImage() {
    		if (image == null) {
    			image = new RealImage(filename);
    		}
    		image.displayImage();
    	}
    }

     

    public class RealImage implements Image {
    	private String filename;
    
    	public RealImage(String filename) {
    		this.filename = filename;
    	    loadImageFromDisk();
    	}
    
    	private void loadImageFromDisk() {
    		System.out.println("Loading   " + filename);
    	}
    
    	@Override
    	public void displayImage() {
    		System.out.println("Displaying " + filename);
    	}
    }

     

     

    코드 결과

     

     

     

     

     

     

     

    참고

    토비의 스프링

    https://ko.wikipedia.org/wiki/%ED%94%84%EB%A1%9D%EC%8B%9C_%ED%8C%A8%ED%84%B4

    반응형

    'Java & 배경지식 > 패턴' 카테고리의 다른 글

    프록시 패턴 - 백기선  (0) 2020.06.14
    데코레이터 패턴  (0) 2020.02.17
    Strategy Pattern(전략패턴)  (0) 2020.02.13
    Session Facade 패턴  (0) 2020.02.10
    Transfer Object 패턴(Value Object)  (0) 2020.02.10
Designed by Tistory.