しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

Swiftで学ぶデザインパターン1 (Singleton パターン)

今日からデザインパターンSwiftで実装するとどうなるかという記事を書いていこうと思います。
最初はデザインパターンの中でも非常に有名なSingleton パターンについて書こうと思います。

デザインパターンとは

デザインパターンとはソフトウェア開発の設計方法の事です。
オブジェクト指向における再利用のためのデザインパターン』という本が出典で、全部で23種類のパターンが紹介されています。

Singleton パターンとは

Singleton パターンとはデザインパターンの1つで、クラスの生成に関するパターンです。
内容としては、特定のクラスのインスタンスを単一にすることでアプリ内の全ての場所から同一インスタンスを参照できると言うものです。

SwiftでのSingleton パターンの実装方法

SwiftでのSingleton パターンは下のように記述します、非常にシンプルですね。
init()をprivateにする事で、複数インスタンスが作られないようにしています。
Swift1.1まではクラス内のstaticが使えなかったためもう少し長かったようですが、クラス内staticが導入されてからは下のように簡単に書けるようになりました。

class SingletonDataManager {
    private init() {}
    
    var value: Int = 0
    static let sharedInstance = SingletonDataManager()
}

SingletonDataManager.sharedInstance.value = 1
print(SingletonDataManager.sharedInstance.value) // 1が出力

Singleton パターンの長所・短所・使いどころ

Singleton パターンの長所としては、簡単にデータの使い回しができる事だと思います。
特定のデータを異なる2つのクラスで使いたい場合等に有効です。
しかしどこからでもアクセスできる事によって、どこから呼ばれているかの把握ができなくなります。
複雑な不具合の原因になりやすいので、注意が必要だと思います。

オブジェクト指向における再利用のためのデザインパターン

オブジェクト指向における再利用のためのデザインパターン