-
구조패턴 : Proxy 패턴디자인패턴 2013. 2. 6. 10:00
분류 : 구조패턴(Structural Patterns)
정의 :
일반적인 형태의 프록시는 중복하기에는 너무 비용이 비싸거나 중복자체가 불가능한 네트워크 연결, 메모리내부의 대형객체, 파일, 또는 다른 자원들에 대한 인터페이스이다.
용도 :
어플리케이션의 메모리 자원을 절약하기위해 사용될 수 있음.
소스
public interface Image { public void displayImage(); } //System A public class RealImage implements Image { private String filename = null; /** * 생성자 * @param FILENAME */ public RealImage(final String FILENAME) { filename = FILENAME; loadImageFromDisk(); } /** * 디스크에서 이미지를 로드함. */ private void loadImageFromDisk() { System.out.println("Loading " + filename); } /** * 이미지를 보여줌. */ public void displayImage() { System.out.println("Displaying " + filename); } } //시스템 B public class ProxyImage implements Image { private RealImage image = null; private String filename = null; /** * 생성자 * @param FILENAME */ public ProxyImage(final String FILENAME) { filename = FILENAME; } /** * 이미지를 보여줌 */ public void displayImage() { if (image == null) { image = new RealImage(filename); } image.displayImage(); } } public class ProxyExample { /** * Test method */ public static void main(String[] args) { final Image IMAGE1 = new ProxyImage("HiRes_10MB_Photo1"); final Image IMAGE2 = new ProxyImage("HiRes_10MB_Photo2"); IMAGE1.displayImage(); // loading necessary IMAGE1.displayImage(); // loading unnecessary IMAGE2.displayImage(); // loading necessary IMAGE2.displayImage(); // loading unnecessary IMAGE1.displayImage(); // loading unnecessary } }
참고자료
http://en.wikipedia.org/wiki/Proxy_pattern
http://ko.wikipedia.org/wiki/%ED%94%84%EB%A1%9D%EC%8B%9C_%ED%8C%A8%ED%84%B4
'디자인패턴' 카테고리의 다른 글
행위패턴 : Command 패턴 (0) 2013.02.26 행위패턴 : Chain of Responsibility 패턴 (0) 2013.02.07 구조패턴 : Flyweight 패턴 (0) 2013.02.05 구조패턴 : Facade 패턴 (0) 2013.01.29 구조패턴 : Decorator 패턴 (0) 2013.01.28 댓글