私はパターンを設計するのが初めてで、学習段階にあります。最近、Singleton パターンについて知り、自分が働いている会社のコードを調べました。次のコード スニペットは、Singleton の規則に従って正しくないように見えます。つまり、メソッドを同期するのではなく、ブロックを同期する必要があります。また、スレッドは、ブロックに入る前に、「インスタンス」変数の値が null かどうかを常にチェックする必要があります。私の理解は正しいですか、それとも次のようにコーディングするロジックがありますか?
public class CustomLogger {
private static CustomLogger instance;
private CustomLogger(){
some code here....
}
public static synchronized CustomLogger getInstance(){
if (instance == null){
instance = new CustomLogger();
}
return instance;
}
}