始める無料で始める

Singleton パターンの実装

アプリケーションでは、複数のコンポーネントにまたがってログ設定を管理する必要があります。現在は各コンポーネントが独自に LogManager を作成しており、設定に不整合が生じています。すべてのコンポーネントが同じログ設定を共有できるよう、Singleton パターンの実装を完成させてください。

この演習はコースの一部です

Javaコード最適化

コースを見る

演習の手順

  • LogManager 型の static 変数 instance を追加します。
  • コンストラクタはクラス内部からのみアクセスできるようにします。
  • LogManager のインスタンスは、現在 null の場合にのみ作成します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

public class Main {
    public static void main(String[] args) {}
}

class LogManager {
	// Add static instance variable to hold the instance
    private static ____ ____;
    private Map logConfig;
    
    // Make constructor accessible only from within the class
    ___ LogManager() {
        logConfig = new HashMap<>();
    }
    
    public static LogManager getInstance() {
    	// Only create if instance is currently null
        if (____ ____ ____) {
            instance = new LogManager();
        }
        return instance;
    }
}
コードを編集して実行