Monthly Archives: May 2017

Swift: guard と defer についての覚書

Swift2 より登場した guard と defer ですが、if 文に慣れすぎてなかなか使おうとせず、覚えられなかったので、勉強を兼ねてメモしておきます。 目次 guard defer guard defer サンプル まとめ guard 条件式が false の場合の処理を記述することができる。if の else 部分のみの構文。 defer スコープを抜け出す際に、実行される処理を定義できる。 guard defer サンプル ViewController.swift 実行結果 まとめ guard と defer のセットを適切に利用すれば、if 文よりモダンかつスマートに処理が記述できますね。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

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

オブジェクト設計において、定石となる手法をパターン化したものを デザインパターン といいます。 デザインパターンをきちんと勉強していない人でも、Web のおかげで知らず知らずのうちに使って(コピペして)その恩恵を享受しています。 自分自身パターン概要を一読しただけで、あいまいな使い方をしているものが多く、この際勉強を兼ねて GOF 23 パターンのなかでよく利用するものを Swift3 で記述していきたいと思います。 今回は 構造パターン の Flyweight について説明します。 目次 [構造] Flyweight パターン まとめ [構造] Flyweight パターン Flyweight とは、フライ級という意味で、生成済みのインタンスを共有し、機能が重複する新規インスタンスの生成を防止し軽量化をおこなうパターン。 サンプルコード FlyweightFactory.swift FlyweightObject.swift ViewController.swift 実行結果 まとめ インタンスを共有するという意味において Flyweight は Singleton と似たデザインパターンですが、Singleton は1つのインスタンスを保持するのに対し、Flyweight はキーと値(オブジェクト)を1対1で保存するといった違いがあります。 次回は 振る舞いパターン の Interpreter パターンを説明したいと思います。 この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

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

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