Choose Language

Apply ⏱ 20 min

Singleton Pattern – Design Patterns (ep 6)

What You Will Learn

  • シングルトンパターンの定義と目的を理解する
  • シングルトンパターンの実装方法を学ぶ
  • シングルトンパターンの使用についての注意点を知る

Key Concepts

  • シングルトンパターンは、クラスが単一のインスタンスしか持たないことを保証し、グローバルなアクセスポイントを提供する
  • シングルトンパターンの実装には、プライベートコンストラクタと静的メソッドが使用される
  • シングルトンパターンの使用には、グローバルな変数の使用やテストの難しさなどの問題点がある

Code Examples

private static Singleton instance;
public static Singleton getInstance() {
    if (instance == null) {
        instance = new Singleton();
    }
    return instance;
}

このコードは、シングルトンパターンの基本的な実装方法を示している。インスタンスが存在しない場合は、新しいインスタンスを作成し、存在する場合は既存のインスタンスを返す。

public class Singleton {
    private Singleton() {}
    public static Singleton getInstance() {
        // ...
    }
}

このコードは、シングルトンパターンのクラス定義の例を示している。プライベートコンストラクタと静的メソッドが使用されている。

Lesson Summary

シングルトンパターンは、クラスが単一のインスタンスしか持たないことを保証し、グローバルなアクセスポイントを提供するデザインパターンである。このパターンの実装には、プライベートコンストラクタと静的メソッドが使用される。シングルトンパターンの使用には、グローバルな変数の使用やテストの難しさなどの問題点があるため、注意が必要である。シングルトンパターンの使用は、クラスが単一のインスタンスしか持つ必要がある場合に限定されるべきである。さらに、シングルトンパターンの代替策として、依存性の注入やファクトリーメソッドなどのアプローチが存在する。

Practice Exercise

シングルトンパターンを使用して、簡単なログ出力クラスを作成してみましょう。クラスには、ログメッセージを追加するメソッドと、ログメッセージを出力するメソッドが必要です。

What Is Next

次のレッスンでは、ファクトリーメソッドパターンについて学びます。ファクトリーメソッドパターンは、オブジェクトの作成をカプセル化するために使用されるデザインパターンです。