Swift: デザインパターン > 構造パターン > Facade

オブジェクト設計において、定石となる手法をパターン化したものを デザインパターン といいます。
デザインパターンをきちんと勉強していない人でも、Web のおかげで知らず知らずのうちに使って(コピペして)その恩恵を享受しています。

自分自身パターン概要を一読しただけで、あいまいな使い方をしているものが多く、この際勉強を兼ねて GOF 23 パターンのなかでよく利用するものを Swift3 で記述していきたいと思います。

今回は 構造パターンFacade について説明します。

目次

  • [構造] Facade パターン
  • まとめ

[構造] Facade パターン

Facadeとは、正面という意味で、複数クラスをまたぐような処理を隠蔽し、1つのクラス(Facade=正面)を提供し、利用者にシンプルなインターフェースを用意するパターン。

サンプルコード

Facade.swift

class Facade {
    class func setObject(value: Any, forKey name: String!){
        let defaults:UserDefaults = UserDefaults.standard
        defaults.set(value,forKey:name)
        defaults.synchronize()
    }
    class func getObject(name: String!) -> AnyObject!{
        let defaults:UserDefaults = UserDefaults.standard
        return defaults.object(forKey: name) as AnyObject
    }
}

ViewController.swift

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        Facade.setObject(value: "chro", forKey:"siro")
        let object = Facade.getObject(name: "siro")
        print(String(describing: object))
    }
}

実行結果

Optional(chro)

まとめ

UserDefault の値の出し入れを Facade クラスのみから行うことができました。

次回は 構造パターンFlyweight パターンを説明したいと思います。

この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

siro:chro 無料ゲーム SQN をリリースしました

img_sqn_00

sirochro 初の無料ゲームアプリ SQN をリリースしました。
記事:SQN: iOS 無料ゲームアプリ SQN - Sequential Numbers をリリース
ちょっとした時間に楽しめる完全無料のゲームなっていますので、是非ダウンロードして遊んでみてください。

↓SQN のダウンロードはこちらから

Related Contents

Pickup Contents