デザインパターン

Proxy

適応可能性

オブジェクトへの単なるポインタよりも多機能で精巧な参照が必要なときには、いつでも Proxy パターンが適用可能である。

構造

proxy.gif

構成要素

Proxy クラス (ImageProxyクラス)
  • RealSubject オブジェクトにアクセスするための参照を保持する。RealSubject クラスのインタフェースと Subject クラスのインタフェースが等しい場合には、Proxy クラスは Subject のオブジェクトを参照するようにしておくこともできる。
  • Proxy オブジェクトを RealSubject オブジェクトと置き換えられるように、Subject クラスと同一のインタフェースを提供する。
  • RealSubject オブジェクトへのアクセスを制御する。また、RealSubject オブジェクトの生成や消去に責任を持つこともある。
  • 他の責任は proxy の種類に依存する。
    • remote proxy は、要求と引数を符合化し、それを別のアドレス空間に存在する RealSubject オブジェクトに送る。
    • virtual proxy は、RealSubject オブジェクトへのアクセスを延期できるように、RealSubject オブジェクトに関する追加情報をキャッシュしておく。たとえば、「動機」の節であげた ImageProxy オブジェクトは、実画像の大きさをキャッシュしている。
    • protection proxy は、呼び出し側がその要求を実行するのに必要なアクセス権を持っているかどうかをチェックする。

目的

あるオブジェクトへのアクセスを制御するために、そのオブジェクトの代理、または入れ物を提供する。

コメント



トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
SmartDoc