#PARAN SILVERLIGHT#
  • Tistory
    • 관리자
    • 글쓰기
Carousel 01
Carousel 02
Previous Next

Chapter 4- Proxy 패턴

DESIGN PATTERN/실용주의 디자인패턴 2013. 1. 8. 10:44

 

기본 아이디어

어떤 객체(Real Object)를 Real Subject와 동일한 인터페이스를 구현한 다른 중개 객체(Proxy)를 통해 접근하는 것이 땔는 편리할 수 있다는 것이다. 중개 객체는 게으를 초기화(값비싼 필드 등을 필요시 로딩)와 같은 일을 하게 된다.

 

 

/** A Map proxy that handles lazy instantiation of tables from the disk.**/

 

 private final class TableMap implements Map
 {
    private final Map realMap;
    public TableMap( Map realMap )
      {
        this.realMap = realMap;
      }

 }

 

TableMap이 자신이 포함하고 있는 realMap 객체의 프록시가 된다.

 

 

- 리모트 프록시(Remote proxy)

: 네트워크 연결의 한 종단에 존재하며 네트워크의 다른 쪽에 있는 객체와 동일한 인터페이스를 구현한다. 사용자는 프록시에 메시지를 보내며, 프록시가 이 메시지를 네트워크 너머에 있는 실제 객체로 전달하게 된다. 이때 사용자는 프록시를 네트워크 너머에 있는 리포트 객체라 생각한다. 프록시를 통해 일어나는 모든 통신은 투명하게 리포트 객체에 전달되기 때문이다. 자바 RME, COBRA 그리고 XML/SOAP 모두 리포트 프록시 아키택처를 사용하고 있다.

 

 

- 가상 프록시(virtual proxy)

: Java.awt.Image 클래스, 이는 로딩될 실제 이미지에 대한 프록시 기능한다. Runtime.getImage()는 백그라운드 스레드가 네트워크를 통해 실제 이미지를 다운로드 하고 있는 동안, 실제 이미지에 대한 프록시를 반환한다. 이미지가 전부 다운로드 되기 전에도 프록시(getImage()가 반환한 이미지)를 사용할 수 있다. 이미지 다운로드가 끝나년 getImage() 메소드는 프록시가 아닌 실제 이미지를 반환한다.

 

 

 

CF> Decorator 패턴, Proxy 패턴, Chain of Responsibility 패턴 :  정정구조 대신 의도를 보자

 

 

저작자표시 비영리 (새창열림)
블로그 이미지

파란실버라이트

To remember the time when I started learning Silver Light!

,

카테고리

  • Inforamtion Technology (281)
    • DESIGN PATTERN (33)
      • 실용주의 디자인패턴 (29)
    • SOFTWARE ENGINEERING (21)
      • Art Of Readable Code (12)
      • Object Oriented Programming (6)
      • TDD (2)
    • FRAMEWORK (22)
      • Spring.net (2)
      • LightSwitch (20)
    • PROGRAMING (58)
      • C# (20)
      • .NET (6)
      • HTML5 (7)
      • ASP.NET (9)
      • SILVERLIGHT (7)
      • Ruby On Rails (6)
    • PROJECT MANAGEMENT (10)
      • SW Version Management (7)
      • Schedulring Management (1)
    • BOOKS (18)
    • MOBILE APP (1)
      • SENCHA TOUCH (1)
    • SECURITY (5)
    • MES (1)
    • B2B (14)
      • WEBMETHODS (4)
    • ERP (53)
      • SAP/R/3 (51)
    • ABOUT TOOLS (2)
    • FUNDAMENT CONCEPT (21)
    • SOA BPM (22)
    • PORTFOLIO (0)

태그목록

  • 동시성
  • 프로그래밍
  • 병렬

최근에 받은 트랙백

글 보관함

링크

파란실버라이트

블로그 이미지

To remember the time when I started learning Silver Light!

LATEST FROM OUR BLOG

RSS 구독하기

LATEST COMMENTS

BLOG VISITORS

  • Total :
  • Today :
  • Yesterday :

Copyright © 2015 Socialdev. All Rights Reserved.

티스토리툴바