DesignPattern > ProxyPattern

概要

「IT専科 - Proxパターン(デザインパターン入門)」より引用
「Proxy」という英単語は、「代理人」を意味します。
このパターンは、本人の代理人となるオブジェクトが本人でなくともできる処理を受持ち、「どうしても本人でないと・・・」という場合のみ、本人に処理を任せるというパターンです。
このパターンは、「Decorator」パターンと酷似していますが、それぞれ目的が異なっています。「Decorator」パターンの目的は、新しい機能を追加するための工夫であり、「Proxy」パターンの目的は、あるオブジェクトへの負荷を軽減(そのために代理して処理を実施)するための工夫となります。

登場人物

Subject - 主体・本人

  • 「Proxy」と「RealSubject」の共通のインターフェースを定義する。

Proxy - 代理人

  • 「Subject」インターフェースを実装する。
  • 「Client」からの要求を受け処理を実行する。自分で処理できない場合は「RealSubject」に処理を委譲する。

RealSubject - 真の主体・本人

  • 「Subject」のインターフェースを実装する。「Proxy」から委譲された処理を実行する。

Client - 利用者

  • 処理の要求先は「Proxy」のメソッドとなる。

UML表現

  • Clientが実際に処理を要求するのはProxyなので、Subjectへの依存線は無くProxyへの依存線または関連線が引かれる場合もある。
  • ProxyとRealSubjectの関係は、依存だったりただの関連だったり集約だったりする。
  • 後述するProxyパターンの詳細分類(Virtual Proxy、Protection Proxy、Remote Proxy)によっても若干異なる(と思う)。

Proxyパターンの詳細分類

Virtual Proxy

Protection Proxy

Remote Proxy

参考サイト

最終更新:2011年09月24日 15:00