
474
11
章
修正すべき問題は
2
つあります。会員は自分のギーク度を変更してはならず、
他の会員の個人情報も変更できないようにすべきです。この問題を修正するため
に、
2
つのプロキシを作成します。
1
つは自分の
Person
オブジェクトにアクセス
するためのプロキシ、もう
1
つは別の会員の
Person
オブジェクトにアクセスする
ためのプロキシです。このようにすると、プロキシがそれぞれの状況で実行でき
るリクエストを制御できます。
このプロキシを作成するために、
440
ページで紹介した
Java API
の動的プロキ
シを使います。
Java
が
2
つのプロキシを作成してくれま
す。あとは、プロキシでメソッドが呼び出されたときに
実行すべきことを知っているハンドラを用意するだけで
す。
プロキシの全体像
全体像:
Person
用の動的プロキシの作成
<<interface>>
Subject
request()
RealSubject
request()
Proxy
request()
<<interface>>
InvocationHandler
invoke()
InvocationHandler
2
つの
InvocationHandler
を作成する。
InvocationHandler
はプロキシの振る舞いを実装し
ます。すぐにわかるように、
Java
が実際のプロキシ
クラスとオブジェクトを作成します。自分では、プ
ロキシでメソッドが呼び出されたときに実行すべき
ことを知っているハンドラを用意するだけです。
動的プロキシを作成するコードを書く。
プロキシクラスを作成してインスタンス化する少量 ...