1.정의
- 프록시 패턴은 사용하는 개체를 통해 실제 개체를 제어하는 패턴.
- 원격지 프록시는 사용할 실제 개체가 클라이언트와 다른 위치에 있을 때 원격지에 있는
개체처럼 사용할 수 있는 프록시를 말한다.
2.시나리오
-가족들은 이번에는 여수에 여행을 왔다.
-사진을 찍는데 직접 손으로 셔터를 누르는 법보단 원격 리모컨을 사용하는 방식이 편할 것 같았다.
3.다이어 그램
-위의 다이어그램은 소켓 통신을 통한 서버측과 클라이언트로 구분하였다.
-서버측은 Camera 객체와 클라이언트 연결을 기다리는 ListenSever 객체와 실제 소켓 통신을 수행하여 카메라를 제어하는 Stub 객체가 있다.
-클라이언트 측은 서버측에 있는 카메라를 제어하고 소켓통신을 하는 RemoteController가 있다.
-Camera 와 RemoteController는 iTake()인터페이스를 상속받아 여러 기능을 약속 받는다.
4.구현
1)ITake 인터페이스
-Camera와 RemoteController의 기능을 약속하는 인터페이스
2)Camera 클래스
3)ListenSever클래스
-ListenServer에서는 소켓을 생성하여 클라이언트의 연결을 기다리는 기능을 한다.
4)Stub 클래스
-Stub 개체는 클라이언트 측에서 요청하는 것이 무엇인지 확인하여 요청대로 Camera 개체를 사용하고 결과가 필요한 경우에 다시 클라이언트 측에게 전달.
5)RemoteController클래스
- 원격 프락시 개체로 서버 측의 Stub과 소켓 통신하여 서버 측에 있는 실제 개체인 Camera 개체를 제어.
6)테스트
-서버측
-클라이언트 측
'C# > GoF 디자인패턴' 카테고리의 다른 글
[GoF]14.보호용 프록시 패턴(Proxy Pattern) (0) | 2023.11.07 |
---|---|
[GoF]13.가상 프록시 패턴(Proxy Pattern) (0) | 2023.11.01 |
[GoF]11.플라이급 패턴(Flyweight Pattern) (0) | 2023.10.21 |
[GoF]10.퍼사드 패턴(Facade Pattern) (0) | 2023.10.18 |
[GoF]9.장식자 패턴(Decorator Pattern) (0) | 2023.10.17 |