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

반응형