[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 11638] Re: Dynamic Proxy



高橋(智)さん。
お疲れ様です。テクノロジックアートの山下です。

>私の勘違いかと思いますが、==による比較というのはProxy同士の比較ということ
でしょうか?
自分の説明が分かりづらかったですね。すいません(^^;

Proxy同士の==による比較です。

トリッキーなことをしてProxyを通したアクセスだけでなく直接Beanに対してアクセ
スする必要がありました。
そしてBeanとProxyとを(論理的に)同じBeanなのかを比較する必要があったのです
が、==で比較することが出来ませんでした。

そもそも、自分としてはProxyを通したアクセスだけでなく直接Beanに対してアクセ
スしているのが問題だと思われました。
Beanに直接アクセスさせず、必ず同じProxyのインスタンスから必ずアクセスさせた
いです。そうすることで、クライアントのコードはProxyを==演算子で比較すること
で論理的な比較が出来ます。
その為の実現方法としては、FactoryMethodパターンを使って、Beanを作成した直後
にProxyをかぶせてしまって、誰にも存在を気づかせないのが適切かな〜と思ってま
す。

山下智也

-----Original Message-----
From: jfriends-ml-request@xxxxxxxxxxxxxxxx
[mailto:jfriends-ml-request@xxxxxxxxxxxxxxxx]On Behalf Of TAKAHASHI,
Tomohiro
Sent: Monday, December 06, 2004 1:03 PM
To: jfriends-ml@xxxxxxxxxxxxxxxx
Subject: [jfriends-ml 11637] Re: Dynamic Proxy


  高橋(智)です。

YAMASHITA tomonari wrote:
>
> >この場合、in-process内、Remoteプロセス間の、どちらで使われたので
> >しょうか?
> in-processです。
snip
> >javax.ejb.EJBObjectインターフェースの
> >       public boolean isIdentical(EJBObject obj) メソッド
> >と同様なメソッドを設けるというのはどうなんでしょうか?
> もともとProxyを作成したのはあるBeanのSetメソッドが呼ばれたときに
> ファイルに書き出す機能を透過的に追加するためでした。
> Proxyは透過的な存在であるのがより理想的だと考えていますので、
> Proxyと対象のオブジェクトのインタフェースが一緒であるのが理想だと思ってい
ま
> す。

  なるほどです。呼び出しに関するHookを入れるためなのですね。参考になります。
  私の勘違いかと思いますが、==による比較というのはProxy同士の比較ということ
でしょうか?

P.S.
  EJBコンテナによってはEJB2.xのLocalEJBに対する呼び出しが、Dynamic Proxy に
より実装されるようになっているようなので、知らないうちに使っているハズです
し、
色々とノウハウを貯めていきたいと考えております。

--
高橋智宏
  Java読書会( http://www.javareading.com/bof/ )


--
No virus found in this incoming message.
Checked by AVG Anti-Virus.
Version: 7.0.289 / Virus Database: 265.4.6 - Release Date: 2004/12/05

--
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.289 / Virus Database: 265.4.7 - Release Date: 2004/12/07