Design Pattern for Smalltalk – Proxy

t_Dpsc_chapter04_Proxy_01v2

Proxy패턴의 핵심은 “허상같은 객체”라는 점이다. Proxy객체는 Client에 대해서는 실제적 클래스 같은 역할을 하지만 그 정체는 “대리자”에 가깝다. Proxy 객체는 실제적인 역할을 하는 인스턴스가 존재(생성전) 하지 않더라도 Client의 요청에 대해 아무일도 없는것처럼 중간처리를 모두 맡아서 한다.

[디자인 패턴]에서도 Proxy 패턴의 몇가지 유형이 나오지만 이중에 백미는 분산 객체라 할 수 있다. Client는 마치 Local에 존재하고 있는 객체인 것 처럼 사용하지만 Proxy객체 내부에서는 원격지에 있는 객체라고 하더라도 문제없이 처리하며 network 문제등의 상황에서 복잡한 경우들을 책임진다. 현재의 분산객체 시스템의 원형이라 할 수 있으며 Client는 별도의 network 상황을 고려하지 않고 Local 객체를 처리하듯, 일관성있는 개념으로 프로그래밍을 할 수 있다. 프로그램의 작성에 있어서 이런 통일된 개념은 중요하다.

그리고 Proxy패턴의 도 하나 장점은 리소스의 절약에 있다. 실제 시스템에서 많은 리소스를 사용하는 인스턴스를 필요할 때 만 사용하려 하는 경우 해당 인스턴스의 생성 및 관리(창조자 (reference) 카운팅 등)를 Proxy객체에서 담당하고 Proxy객체는 관리하는 실제 인스턴스와 동일한 인터페이스를 사용함으로서 Client에게는 코드의 일관성을, 시스템에 대해서는 효율적인 리소스의 사용을 가능하게 해준다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.