14. 보호용 프락시 설계

14. 3 디자인

프락시 패턴 중에 보호용 프락시를 설명하기 위한 예제 프로그램은 사진 관리 프로그램입니다. 프로그램 내부에는 사진과 보호용 프락시인 보호용 사진이 있고 이들을 일반화 시킨 IView가 있습니다. 그리고, 이들을 사용하는 사진 관리자를 만들 것입니다.

사진과 보호용 사진은 IView 인터페이스를 구현 약속한 클래스이므로 IView 인터페이스 형식 변수를 통해 일관되게 사용할 수 있습니다. 대신 보호용 사진의 경우 사용자를 설정하거나 사용 가능한 사용자를 추가하는 메서드를 제공하여 권한이 있는 사용자만 해당 사진에 접근할 수 있게 할 것입니다.

사진 관리자는 IView 인터페이스 형식 개체를 관리할 수 있으며 사용자에 의해 일반 사진을 만들어 달라고 요청할 수 있고 보호용 사진을 만들어 달라고 요청할 수도 있습니다. 그렇다고 하더라도 사진과 보호용 사진은 같은 인터페이스를 구현 약속하였기 때문에 사진 관리자에서 이들을 사용하는 방법은 대부분 일관되게 사용할 수 있습니다.

이처럼 보호용 프락시 패턴을 사용하면 실제 개체를 사용하는 방법과 동일하게 사용할 수 있게 보장을 하면서 권한에 따라 특정 행위를 수행할 수 없게 보호할 수도 있습니다.

[그림] 보호용 프록시 클래스 다이어그램
[그림] 보호용 프록시 클래스 다이어그램