私はCVSブランチをマージしていますが、大きな変更の1つは、スタティックな初期化ブロックとすべての静的メソッドを持つ抽象クラスを持つシングルトンパターンのどこに置き換えられるかです。Java Singletonと静的 - 実際のパフォーマンス上の利点はありますか?
このリファクタリングを価値があるものと見なすには、どのような状況が予想されますか?多くのコンフリクトをマージする必要があるため、これは価値がありますか?
我々は、WebLogic 8.1の下でトーマスは、
...私は明確にしましょうHEADのバージョンは、伝統的なシングルトンパターン(プライベートコンストラクタを持っている(ので、JDK 1.4.2)は申し訳ありませんが、このアプリを実行しています
ブランチバージョンにはコンストラクタがありません。 'public abstract class'であり、オブジェクト上のすべてのメソッドが 'static'に変更されています。プライベートコンストラクタ内に存在していたコードは、静的ブロックに移動されます。
次に、クラスのすべての用途が変更され、マージで複数の競合が発生します。
この変更が加えられたケースはいくつかあります。
シングルトンは、ロードされたクラスローダーのClassLoaderの有効期間と同じくらい静的なものです。 –
そして?すべてがClassLoaderの生涯に結びついていますが、シングルトンを置くことで余分なライフサイクルレイヤーが得られ、適切に処理するチャンス(ファイナライズ)が増えます。 –