C#/GoF 디자인패턴

[GoF]13.가상 프록시 패턴(Proxy Pattern)

공부를하자 2023. 11. 1. 02:34

1.정의

- 프록시 패턴은 사용하는 개체를 통해 실제 개체를 제어하는 패턴.

-가상 프록시는 실제 개체의 특정 행위를 수행하는 비용이 클 때 사용하는

패턴으로 가상 프락시는 작업을 별도의 스레드로 관리하여 작업 요청을 수행이 완료될 때까지 기다리지 않고 다른 작업을 수행 있다.

2.시나리오

-가족은 여수에 다녀온 이후 찍은 사진들을 소셜 사이트에 올리기 위해 사진 보정 작업을 실시 하였다.

-하지만 사진들의 크기가 커서 하나의 사진의 사이즈를 조절하는 프로그램을 돌리고 있는 동안은 다른 작업을 실시하지 못했다.

 => 비용이 작업

-별도의 도우미 프로그램을 작성하여 작업의 시작과 완료를 담당하도록 만들었다.

=> 프록시 객체

3.다이어 그램

-IConvert ImageConverter클래스와 VirtualConverter클래스의

인터페이스로 . 프로그램 내부에는 이미지를 설정하고 리셋시키고 변환하는 기능, 이미지 얻어오기 기능을 약속한다.

-ImageConverter클래스는 비용이 작업이 작업은 VirtualConverter클래스에 인계하고 외의 작업은 자신이 처리한다.

-VirtualConverter클래스는 스레드를 사용하여 비용이 작업을 처리한다.

4.구현

-IConvert 인터페이스

 

- ImageConverter클래스

-VirtualConverter클래스

4)테스트