オブジェクト設計において、定石となる手法をパターン化したものを デザインパターン といいます。
デザインパターンをきちんと勉強していない人でも、Web のおかげで知らず知らずのうちに使って(コピペして)その恩恵を享受しています。
自分自身パターン概要を一読しただけで、あいまいな使い方をしているものが多く、この際勉強を兼ねて GOF 23 パターンのなかでよく利用するものを Swift3 で記述していきたいと思います。
今回は 構造パターン の Facade について説明します。
目次
- [構造] Facade パターン
- まとめ
[構造] Facade パターン
Facadeとは、正面という意味で、複数クラスをまたぐような処理を隠蔽し、1つのクラス(Facade=正面)を提供し、利用者にシンプルなインターフェースを用意するパターン。
サンプルコード
Facade.swift
[code]
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
}
}
[/code]
ViewController.swift
[code]
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
Facade.setObject(value: “chro”, forKey:”siro”)
let object = Facade.getObject(name: “siro”)
print(String(describing: object))
}
}
[/code]
実行結果
[code]
Optional(chro)
[/code]
まとめ
UserDefault の値の出し入れを Facade クラスのみから行うことができました。
次回は 構造パターン の Flyweight パターンを説明したいと思います。
この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。