Singletonパターン
Singletonパターン
Section titled “Singletonパターン”Singletonパターンは、クラスのインスタンスが1つだけ存在することを保証するデザインパターンです。
なぜSingletonパターンが必要なのか
Section titled “なぜSingletonパターンが必要なのか”問題のある実装
Section titled “問題のある実装”問題のあるコード:
// 複数のインスタンスが作成される可能性があるclass DatabaseConnection { connect() { // データベース接続 }}
const db1 = new DatabaseConnection();const db2 = new DatabaseConnection();// 問題: 複数の接続が作成されるSingletonパターンによる解決
Section titled “Singletonパターンによる解決”改善されたコード:
class DatabaseConnection { private static instance: DatabaseConnection;
private constructor() { // プライベートコンストラクタ }
public static getInstance(): DatabaseConnection { if (!DatabaseConnection.instance) { DatabaseConnection.instance = new DatabaseConnection(); } return DatabaseConnection.instance; }
connect() { // データベース接続 }}
const db1 = DatabaseConnection.getInstance();const db2 = DatabaseConnection.getInstance();// db1 === db2 (同じインスタンス)ロガーの実装
Section titled “ロガーの実装”class Logger { private static instance: Logger;
private constructor() {}
public static getInstance(): Logger { if (!Logger.instance) { Logger.instance = new Logger(); } return Logger.instance; }
log(message: string) { console.log(`[${new Date().toISOString()}] ${message}`); }}
// 使用const logger = Logger.getInstance();logger.log('Application started');Singletonパターンのポイント:
- 単一インスタンス: クラスのインスタンスが1つだけ存在
- グローバルアクセス: どこからでもアクセス可能
- 使用例: データベース接続、ロガー、設定管理
適切にSingletonパターンを使用することで、リソースを効率的に管理できます。