デザインパターン
別名:デザパタ
【英】design pattern
デザインパターンとは、ソフトウェア設計時に遭遇する典型的な問題に対して、その解決策に名前を付与してテンプレート化したもののことである。主に、オブジェクト指向設計に用いられる。
デザインパターンは、広義には、ソフトウェアの構造や振る舞いに関するパターンを意味するが、狭義にはエリック・ガンマ(Erich Gamma)、リチャード・ヘルム(Richard Helm)、ラルフ・ジョンソン(Ralph Johnson)、ジョン・ブリシディース(John Vlissides)ら4人(GoF:Gang of Four)が執筆した書籍『Design Patterns:Elements of Reusable Object-Oriented Software』(邦題:『オブジェクト指向における再利用のためのデザインパターン』)に定義された23種類のデザインパターンを指す。多くの場合は後者の意味で用いられ、GoFのデザインパターンとして有名である。
デザインパターンは、ソフトウェア設計の熟練者たちによる過去の成功例であり、デザインパターンを用いることで、ソフトウェア設計の問題に遭遇した場合に試行錯誤しながら解決策を導き出さなければならないという手間が省ける。
また、ライブラリがプログラムという実体の再利用であることに対し、デザインパターンは、考え方や概念の再利用といえる。そのため、抽象化という武器を最大限に適用できるオブジェクト指向において急速にデザインパターンが広まったと考えられる。
なお、デザインパターンは、実際にはデザイン(設計)の領域だけでなく、アーキテクチャパターンからプログラミングTips(イディオム)まで含まれており、さまざまな場面で適用できる。ただし、使い方によっては副作用もあるため、そのトレードオフを見極めて適用する必要がある。
参照リンク
Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma, et al. (Addison-Wesley, 1995) - (amazon.com)
|