
you are here
469
11
章
Proxy
パターン
Java API
の
Proxy
を使って
保護プロキシを作成する
Java
では、
java.lang.reflect
パッケージで独自のプロキシをサポートしています。このパッ
ケージを使うと、
Java
でプロキシクラスを事前の準備なしで作成できます。このプロキシクラ
スは
1
つ以上のインタフェースを実装し、メソッド呼び出しを指定のクラスに転送します。実
際のプロキシクラスは実行時に作成されるので、この
Java
の技術は動的プロキシと呼ばれます。
これから
Java
の動的プロキシを使って次のプロキシ実装(保護プロキシ)を作成しますが、
その前に動的プロキシの仕組みを示すクラス図をざっと確認してみましょう。現実の世界で
はほとんどがそうであるように、このクラス図はこのパターンの一般的な定義とは少し異な
ります。
<<interface>>
Subject
request()
RealSubject
request()
Proxy
request()
<<interface>>
InvocationHandler
invoke()
InvocationHandler
ここでは、
Proxy
は
2
つの
クラスからなります。
Proxy
は
Java
が生成し、
Subject
インタフェース全
部を実装します。
InvocationHandler
を用意します。
InvocationHandler
には、
Proxy
で呼び出されたすべてのメソッド呼び出しが
渡されます。
InvocationHandler
は、