1.정의
- 프록시 패턴은 사용하는 개체를 통해 실제 개체를 제어하는 패턴.
-가상 프록시는 실제 개체의 특정 행위를 수행하는 비용이 클 때 사용하는
패턴으로 가상 프락시는 이 작업을 별도의 스레드로 관리하여 작업 요청을 할 시 수행이 완료될 때까지 기다리지 않고 다른 작업을 수행 할 수 있다.
2.시나리오
-가족은 여수에 다녀온 이후 찍은 사진들을 소셜 사이트에 올리기 위해 사진 보정 작업을 실시 하였다.
-하지만 사진들의 크기가 커서 하나의 사진의 사이즈를 조절하는 프로그램을 돌리고 있는 동안은 다른 작업을 실시하지 못했다.
=> 비용이 큰 작업
-별도의 도우미 프로그램을 작성하여 작업의 시작과 완료를 담당하도록 만들었다.
=> 프록시 객체
3.다이어 그램
-IConvert는 ImageConverter클래스와 VirtualConverter클래스의
인터페이스로 . 프로그램 내부에는 이미지를 설정하고 리셋시키고 변환하는 기능, 이미지 얻어오기 기능을 약속한다.
-ImageConverter클래스는 비용이 큰 작업이 작업은 VirtualConverter클래스에 인계하고 그 외의 작업은 자신이 처리한다.
-VirtualConverter클래스는 스레드를 사용하여 비용이 큰 작업을 처리한다.
4.구현
-IConvert 인터페이스
- ImageConverter클래스
-VirtualConverter클래스
4)테스트
'C# > GoF 디자인패턴' 카테고리의 다른 글
[GoF]15.책임 연쇄 패턴(Chain of Responsibility Pattern) (0) | 2023.11.15 |
---|---|
[GoF]14.보호용 프록시 패턴(Proxy Pattern) (0) | 2023.11.07 |
[GoF]12.원격 프록시 패턴(Proxy Pattern) (0) | 2023.10.25 |
[GoF]11.플라이급 패턴(Flyweight Pattern) (0) | 2023.10.21 |
[GoF]10.퍼사드 패턴(Facade Pattern) (0) | 2023.10.18 |