3

依存関係を Bean に注入するように要求すると、そのリソースのインスタンスへのプロキシが注入されることをどこでも読んでいます。プロキシとは何か、メッセージを別のインスタンスに転送する方法を知っているインスタンスであることを知っていると思います。また、コンテナーがこのマネージド Bean にサービスを提供できるのは、このパターンであるとも述べられています。

これはよくわかりません。なぜプロキシが必要なのですか? そして、これはどのように実装されていますか?各 Bean にプロキシ オブジェクトはありますか? または、1 つのインスタンスに転送するプロキシが多数ありますか? それともどちらでもない?

また、GoF の本のデザイン パターンから、プレースホルダーとして機能するプロキシ クラスを提供する必要があることを読みました。しかし、Java EE では決してそれを行いません。アプリケーション サーバーは実行時にプロキシ クラスを作成しますか?

4

1 に答える 1

5

プロキシパターンの背後にある基本的な前提は、「ユーザー」の観点からプロキシパターンを気にする必要がないということです。プロキシは宣言されたタイプになりすまし、同じように動作する必要があります。付加価値は、プロキシがターゲットインスタンスに呼び出しを転送または返す前または後に行うことから得られます。これは、たとえばトランザクションとセキュリティがコンテナに実装される方法です。

追加された質問について:はい、アプリケーションサーバーは必要に応じてそれらのプロキシクラスを作成します。

于 2011-03-03T18:30:35.597 に答える