モノトーンパターン


モノトーンモード

  • 作成モード

  • グローバル変数を使用せずにオブジェクトを作成し、作成したオブジェクトを任意の場所で参照できるモードです.

  • 1つのインスタンスのみを作成し、getInstanceメソッドですべてのクライアントに同じインスタンスを返します.
  • こうぞう



    インプリメンテーション

    public class Singleton {
    
        private static Singleton instance;
    
        public static Singleton getInstance() {
            if (instance == null) {
                synchronized (Singleton.class) {
                    if (instance == null) {
                        instance = new Singleton();
                    }
                }
            }
            return instance;
        }
    }
    使用
  • synchronized スレッド競合を防止できます.
  • メリットとデメリット

  • メリット
  • 最初の新しい演算子で固定メモリ領域を使用し、将来そのオブジェクトにアクセスする際のメモリの無駄使いを防止する
  • 作成したインスタンスを利用して速度の面でもメリットがある
  • デメリット
  • モノトーンモードを実現するコード自体が多数必要
  • newキーワードが直接クラスにオブジェクトを生成することは、SOLIDの原則であるDIPに違反したり、OCPの原則に違反したりする可能性が高い.
  • ステータス値を持つ場合は、マルチスレッド環境に注意する.
  • 関連項目:
  • モノトーンモードとは?
  • [Patternを設計]シングルループモード: