オブジェクト指向のデザインパターンをSwiftで学ぶ | [書評]Swiftデザインパターン
ターゲットユーザは、iOS、Macアプリ開発者
念のために補足しますと、Swiftは、MacやiPhone、iPad、iPod Touchで動作するアプリケーションを開発するためのApple社開発のプログラミング言語です。オープンソース化されてLinuxでも動き始めています。
本書は、名著『オブジェクト指向における再利用のためのデザインパターン』を、Swiftを使って、分かりやすく解説することを意図しています。著者も最初に書いていますが、デザインパターンを使わずに、普通にコーディングした方が良い場合もあります。しかし、プログラムが大きく、かつグループ開発や、他人への継承が絡んでくるとデザインパターンを使用することのメリットが活かされます。
本書の概要
全24個のデザインパターンが解説されています。冒頭の「第1章デザインパターンを理解する」は非常に重要な章です。ここにデザインパターンを使用する意義が書かれています。第2章、第3章は、統合開発環境(IDE)であるXcodeの説明ですので、飛ばしても良いです。本書のサンプルプログラムは、Swiftバージョン1で書かれています。サンプルプログラムは、サイトからダウンロードできます。
私が試した範囲では、現在最新のXcode7.3(Swift 2.2対応)でも、サンプルプログラムのプロジェクトを読み込む際にバージョン差異をXcodeが自動変換してくれるので特に問題はないと思います。すべてのサンプルを試してはいませんので、ご注意ください。ただ、本書の目的は、Swiftのコーディングではなく、デザインパターンにありますので、Swift 1レベルのコーディングを参考にSwift 2や今後のSwift 3での変更点を考慮しながら開発すれば、本書のデザインパターンコーディング例は十分参考になります。
各デザインパターン単位で章が分かれています。非常に読み易い構成になっています。まず、当該デザインパターンの定義をQ&A形式の表で簡単に説明し、これからデザインパターンで解決しようとする問題をソースプログラム付きで解説し、次に当該デザインパターンの概要を、図を含めて詳しく説明しています。そしてソースプログラム付きでデザインパターンを適用したコーディング例と解説があります。また、デザインパターンによっては、使うことの問題点も指摘されています。
私の注目ポイント
もともと知っているデザインパターンもありましたが、知らないものも多く勉強になります。第1章で著者は、デザインパターンの使用を保険に喩え、使用するべきか、使用しないべきか、プログラマに考えることを求めています。もっともだと思いました。何より、本書の構成が素晴らしく読みやすいです。
最後に
第1章でデザインパターンについて著者は次のように書いています。
デザインパターンは、ソフトウェア開発の一般的な問題を識別し、先に述べた個人的な手法ではなく、客観的に表現され、一貫性があり、感情的な問題にとらわれない解決策を提供する。
まさにその通りと思います。