アプリ内のすべてをシングルトンから遠ざけようとしています。これはプログラミングの悪い慣行であることに気付いたからです。そうは言っても、Dagger 2 依存性注入の実装を検討しています。そして、Dagger 2 で @Singleton を実行すると、そのスレッドは同期されますか? そうでない場合はどうすれば同期できるので、同じものに触れている複数のスレッドから奇妙なデータ異常が発生することはありません。
次のようなことをする前にシングルトンを作成していたとき:
public class SomeSinglton {
private static ClassName sInstance;
private SomeSinglton () {
}
public static synchronized ClassName getInstance() {
if (sInstance == null) {
sInstance = new ClassName();
}
return sInstance;
}
同期されている限り、Dagger 2 @Singleton は同等ですか?