Kanade Logoカナデ Kanade

1. シングルトンパターン (Singleton)

たった一つのオブジェクトだけを生成して状態を共有するシングルトンパターンについて学びましょう。

シングルトンパターン (Singleton Pattern)

シングルトンパターンは、アプリケーション全体でたった一つのインスタンス(オブジェクト)だけを生成されることを保証し、どこからでもそのインスタンスにアクセスできるようにするパターンですね。主に設定ファイル管理者やデータベース接続オブジェクトのように、複数作られてはいけない場合に使用します。

カナデ(Kanade)では、私たちキーワード(静的メンバー)を活用してシングルトンをとても簡単に実装できるんですよ。

1. データベース管理者を作る

_インスタンス変数を外部に隠して(『私たち』の『_インスタンス』を空っぽに隠そう)、静的メソッドを通してのみアクセスできるように防御してみましょうか?

【データベース】を設計しよう:
    『私たち』の『_インスタンス』を空っぽに隠そう
    『データ』を【文字列】の「接続完了!」にしよう
    
    (参考:外部からはこの静的関数でのみオブジェクトを取得できます)
    【データベース】を返す『私たち』の〈取得する〉を作ろう():
        もし(『私たち』の『_インスタンス』が空っぽと同じだ)ならば:
            『私たち』の『_インスタンス』を【データベース】の新しい【データベース】()にしよう
        
        『私たち』の『_インスタンス』を返そう

(参考:2回取得しても結局同じオブジェクトなんですよ!)
『DB1』を【データベース】の〈取得する〉()にしよう
『DB2』を【データベース】の〈取得する〉()にしよう

『DB1』の『データ』を「アップデート完了!」にしよう

(参考:DB1を変更したけどDB2も変更されているでしょうか?)
枠「DB2の状態:{『DB2』の『データ』}」を出力しよう

プレイグラウンド (Playground)

ターミナル
コードを書いて「実行」ボタンを押してください。