モノトーンモード


この記事は、インフラの白起善の講座コード学習によるGoF設計モードを聞いてまとめたものです.

✔定義


1つのインスタンスのみを提供するクラス
ex)設定

単一トーンモードを実現するための5つの方法


1.プライベートジェネレータ+スタティックメソッド


  • なぜ私密創建者なのか.

  • 静的メソッドはなぜですか?

  • なぜgetInstance()はマルチスレッド環境で安全ではないのですか?
  • 2.同期の使用(synchronized)


    3.初期化の使用


    👎 : 作成時に大量のリソースを消費する場合は、作成後に使用しないと何の役にも立たない

    4.ダブルチェックロックの使用

  • マルチスレッドの頻繁な使用に適しています
    👍 : 必要に応じて
  • を作成して使用

    5.静的内部クラスの使用(推奨)

    private Settings() {}
    private static class SettingsHolder {
    	private static final Settings SETTING = new Settings();
    }
    
    public static Settings getInstance() {
    	return SettingsHolder.SETTINGS;
    }
    
    static finalと書いた以上、なぜ遅延初期化と考えられるのでしょうか.