2009-08-16 4 views

答えて

2

"実行コンテキストクラス"は、プログラムの最上位レベルで作成された単なるホルダークラスであり、必要なトップレベルからすべてのもの(リンクされた例のTransactionオブジェクトなど)を保持します。

グローバル変数を避けるためのパッケージ化された方法です。

トップ・コールがBを呼び出してCを呼び出し、トップレベルを必要とするDをコールすると、A、B、Cにコンテキストを渡す必要があるため、そうでなければそれを必要としません。

そして、それは必要ではない場所でのバインディングを促進します - このコンテキストを使用しないプログラムでは、A、B、Cは再利用できません。しかし、それは隠された世界的状態への完全に実行可能な選択肢であり、シングルトンや他の面倒なものの無限の拡散にもつながります。

編集:この段落は無効です: 少なくとも、介入するクラスのバインディングを標準ではなく標準にするため、javax.resource.spi.work( http://www.j2ee.me/j2ee/1.4/docs/api/javax/resource/spi/work/ExecutionContext.html)のExecutionContextクラスを使用することをお勧めします。アプリ固有のもの

+0

どのようにjavax.resource.spi.work.ExecutionContextを使用するかについての例? – cometta

+0

うん、私はここに恥ずかしいです。 Javadocをあまりにも速く読んだことに基づいて、私は急いで勧告を出しました。それは、間違って、あなたのニーズを満たしていません。私はこれを反映するために私の答えを編集するつもりです。 – CPerkins