[保存版]人間が読んで理解できるデザインパターン解説#3: 振舞い系(翻訳)

こんにちは、hachi8833です。デザインパターン解説シリーズの最終回です(全3回)。 #1 作成系デザインパターン #2 構造系デザインパターン #3 振舞い系デザインパターン(本記事) 概要 原著者の許諾を得て、MITライセンスに基づき翻訳・公開いたします。 英語記事: Design Patterns for Humans™ – An ultra-simplified explanation 更新日: 2017/09/25 著者: Kamran Ahmed サイト: Hugobots — 開発者向けのニュースレターを発行しています。 「Design Patterns for Humans」は商標(TM)です。 人間が読んで理解できるデザインパターン解説#3: 振舞い系(翻訳) ? 究極にシンプルなデザインパターン解説! ? 誰もがつい心躍ってしまうタイトルにしてみました。タイトルに負けないよう、本記事ではこれ以上不可能なまでにシンプルな方法にこだわってデザインパターンを解説しています。 本ガイドを気に入っていただいた方はコーヒー一杯おごってくださいまし。他の記事も読んでみたい方は、ぜひHugobotsのご購読をお願いいたします。 ? はじめに デザインパターンとは、常に繰り返される問題を解決するためのものであり「特定の問題に取り組む方法のガイドライン」です。デザインパターンはクラスではありませんし、アプリに追加するだけで奇跡を起こしてくれるようなパッケージやライブラリでもありません。デザインパターンはそうしたものではなく、特定の状況で特定の問題に取り組む方法を示すガイドラインであるとご理解ください。 デザインパターンとは、常に繰り返される問題を解決するためのものであり「特定の問題に取り組む方法のガイドライン」です。 Wikipediaには次のように書かれています。 ソフトウェアエンジニアリングにおけるデザインパターンとは、ソフトウェア設計上の特定コンテキストにおいてよく発生する問題に対する「一般的かつ再利用可能な問題解決法」である。デザインパターンは、ソースコードやマシンコードに直接置換えられるような最終設計ではない。デザインパターンは、さまざまな状況に適用可能な問題解決法の記述、またはテンプレートである。 ⚠️ ご注意 デザインパターンは、あらゆる問題を解決する「銀の弾丸」ではありません。 デザインパターンを強制してはなりません。無理にデザインパターンを適用すれば良くない結果が生じることでしょう。デザインパターンは、問題が起こってからそれを解決するものであって、問題をあら捜しして解決するものではありません。デザインパターンに過剰な期待を持たないことです。 適切な場所で適切に用いられたデザインパターンは、救いの神になるでしょう。そうでないデザインパターンは荒れ狂い、コードをめちゃめちゃにしてしまうことでしょう。 追伸: 以下のコードサンプルではPHP-7を使っていますが、コンセプトはどの言語でも同じなので、どうかページを閉じないでください。ついでながら、他の言語のサポートについては現在作業中です。 デザインパターンの種別 作成系 構造系 振舞い系 … Continue reading [保存版]人間が読んで理解できるデザインパターン解説#3: 振舞い系(翻訳)