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;
}
}