GoFのデザインパターン 14個についての記事書いたのでまとめです。
GoFのデザインパターンとは、「プログラミングのベストプラクティスを体系化したもの」です。このベスト・プラクティスをしっかりと理解して設計すれば、ソフトウエア設計の効率を高めることができます。またデザインパターンが「プログラミングの思想」の共有をよりスムーズにしてくれます。先人たちの試行錯誤の結果を効果的に利用して、プログラミングをもっと楽しんでしまいましょう!
デザインパターンの重要要素
GoFのデザインパターンには下のプリンシパルがあります。
- 変わるものを変わらないものから分離する
- インターフェイスに対してプログラミングし、実装に対して行わない
- 継承より集約
- 委譲、委譲、委譲
- 必要になるまで作るな(You Ain’t Gonna Need It./YAGNI)
各デザインパターンの説明
生成に関するパターン
構造に関するパターン
振る舞いに関するパターン
- コマンド/Command
- インタープリタ/Interpreter
- イーテレータ/Iterator
- オブザーバ/Observer
- ストラテジ/Strategy
- テンプレートメソッド/Template Method
お願い事項
GoFのデザインパターンは全部で22個あり、また名著「Rubyによるデザインパターン」にはRuby向けの3つのデザインパターンが書かれています。つまり、項目の網羅性という点だけでも未完成です。加えて各項目もすべて説明不十分な状態です。ただ、このデザインパターンをどこのサイトにも負けないわかりやすいコンテンツに昇華させていきたいと本気で思っています。なので間違っていたり、わかりにくい説明があればどんどんコメント欄 or 僕の Twitterアカウント(@zyunnosuke)までご連絡下さい。
Special Thanks
Amazon.co.jp: Rubyによるデザインパターン: Russ Olsen, ラス・オルセン, 小林 健一, 菅野 裕, 吉野 雅人, 山岸 夢人, 小島 努: 本
変更来歴
12/10 23:10 FactoryをFactory MethodとAbstract Factoryに分割
12/11 00:00 書籍へのリンクをAmazon アフィリエイトに変更
06/20 17:15 Ruby 2.0.0でテストしつつ、わかりにくい部分を書きなおしました