1
osgiのすべてのバンドルには独自のクラスローダーがあります。 3つのバンドルがあるとしましょう:1,2,3。バンドル1にはシングルトンクラスがあります。バンドル2はシングルトンをロードし、シングルトンに変更を加えます。そして、私が理解する限り、バンドル3がシングルトンを読み込んでも、そのシングルトンのバージョンは異なります。したがって、バンドル2のシングルトン!=バンドル3のシングルトン3.OSGi環境でシングルトンを実装できます
私の声明は正しいですか?彼らが正しい場合、それはシングルトンではありません、そうですか?
シングルトンは上記の例の場合に有効です。欠点は、バンドル間の緊密な結合を作り出すことである。したがって、OSGiの方法は、OSGiサービスをbundle1で公開し、それを他のバンドルで使用することです。これはシングルトンのようにも動作しますが、各バンドルを更新することができます。 –
同じパッケージを複数のバンドルにエクスポートすることもできます。あなたは "シングルトン"の複数のインスタンスを持つことができます。 –