Open1

TypeScript / JavaScript における静的メソッドの使いどころ

山とコード山とコード

ChatGPT 先生の回答

TypeScriptのクラスにおける静的メソッドは、インスタンスを作成せずに直接クラス自体から呼び出すことができるメソッドです。静的メソッドは、次のような場面で有用です。

  1. ユーティリティ関数: 静的メソッドは、特定のクラスのインスタンスを必要とせずに、関連する操作やユーティリティ関数を提供するのに便利です。例えば、数学関数や日付操作などのヘルパーメソッドを提供する場合に使用できます。
class MathUtils {
  static add(a: number, b: number): number {
    return a + b;
  }
}

const result = MathUtils.add(3, 5); // 8
  1. ファクトリーメソッド: 静的メソッドは、クラスのインスタンスを作成するためのファクトリーメソッドとして使用することもできます。インスタンスの作成方法を制御したり、キャッシュを管理する場合に役立ちます。
class User {
  constructor(private name: string) {}

  static createUser(name: string): User {
    return new User(name);
  }
}

const user = User.createUser("Alice");
  1. シングルトンパターン: 静的メソッドを使用して、シングルトンパターンを実装することもできます。シングルトンクラスは、アプリケーション内で唯一のインスタンスを保証するために使用されます。
class Database {
  private static instance: Database;

  private constructor() {}

  static getInstance(): Database {
    if (!Database.instance) {
      Database.instance = new Database();
    }
    return Database.instance;
  }
}

const db1 = Database.getInstance();
const db2 = Database.getInstance();
console.log(db1 === db2); // true

静的メソッドは、特定のクラスのインスタンスに関連しない処理や、クラス自体の操作を提供するために使用されます。ただし、静的メソッドの使用は適切な場面で行う必要があり、過度に使用するとテストや拡張性の面で制約が生じる場合があります。適切な使用場所を選び、コードの設計と読みやすさに注意して使用することが重要です。