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에게는 코드의 일관성을, 시스템에 대해서는 효율적인 리소스의 사용을 가능하게 해준다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

This site uses Akismet to reduce spam. Learn how your comment data is processed.