デザインモードモノトーンモード


今日はモノトーンモードとは何かを簡単に見てみましょう.
簡単に言えば、単一トーンパターンの定義は、インスタンスを作成し、複数のクラスで共有することです.
TSサンプルコード
class Printer {
  private static instance: Printer; // 공유할 인스턴스 static으로 선언하여 생성자 함수를 선언하지 않고 메모리를 할당 시켜줌
  private constructor() {} // 외부에서 printer의 생성자 함수 접근을 막기 위한 private 선언

  public static getPrinter() { // static으로 선언하여 생성자 함수를 사용하지 않고 메모리를 할당시켜주어 getPrinter함수에 접근 가능하도록 함
    // Printer의 instance가 없다면 생성자 함수를 통해 인스턴스를 만들어 준다. 반대로 기존에 인스턴스가 만들어져 있다면 생성자 함수를 호출하지 않고 기존에 인스턴스를 사용한다.
    if (!this.instance) { 
      this.instance = new Printer();
    }

    return this.instance;
  }
}

console.log(Printer.getPrinter()); // 같은 인스턴스를 가져옴
console.log(Printer.getPrinter()); // 같은 인스턴스를 가져옴
最も基本的なモノトーンパターンのコード例.モノトーンパターン設計は、インスタンスを作成し、複数の場所で共有することです.
モノクロを使うメリットは?
  • メモリのメリット.コンストラクション関数によって最初に作成されたインスタンスが1つしかメモリ領域を占めていないため、複数のインスタンスを作成して使用する場合に比べてメモリの利点が大きく、1つのインスタンスを共有して使用するため、速度も向上します.
  • などのデータを共有しやすい.
    これは、グローバル汎用データの共有に役立つ、同じインスタンスを最初に共有する設計モードです.ただし、マルチスレッド環境では、複数のクラスからインポートおよび使用すると同期の問題が発生する可能性があります.(tsは単一スレッド環境なので良い)