デザインパターン[GoF 23]#0 デザインパターンとは

こんにちは!ぐちです。

〜ぼっちAdvent Calendar風イベント実施中[5日目]〜

以前インデックスだけ投稿したシステム開発におけるデザインパターンを紹介するシリーズの第1弾をご紹介したいと思います。

デザインパターンとは

昨今、システム開発では、JavaやC#などを用いたオブジェクト指向プログラミングが一般的となっています。オブジェクト指向プログラミングとは、いくつかの「オブジェクト」を生成し、それらのオブジェクト同士を相互作用させることによりプログラムを実行する開発言語のことです。

オブジェクト指向言語では以前書いたオブジェクトを「再利用」することで生産性や信頼性を向上させることが一般的ですが、そもそもそういった作りをするにはどのようにすればよいのでしょうか?
特定の人だけ生産性が高まるような設計では再利用が可能な箇所が限られてしまいますよね。世界中とはいかないまでも標準的な指針に沿った設計(もしくは設計されたもの)が必要になってきます。そこで登場するのがデザインパターンです。

設計者が何か問題に直面した際に、それが初めての問題であれば様々な解決方法を試行錯誤して良い方法を見つけ出す必要がありますが、以前似たような問題に直面した際には、うまく解決した方法があれば、それらを活用することで容易に問題を解決することができます。

それら先人の知恵を盛り込んだパターンを紹介しているのが次の書籍です。

オブジェクト指向における再利用のためのデザインパターン

この本は再利用生の高いクラスやライブラリの設計指針を提唱したもので、デザインパターンが広く認知されるきっかけになった本と言われています。本書ではオブジェクト指向において再利用生の高い設計とするためのパターンが23個紹介されています。通称「GoF本」です。

GoFとは・・・
この本の執筆者であるErich Gamma, Richard Helm, Ralph Johnson, John Vlissidesの4人を合わせて「the Gang of Four」と呼び、これが GoF と略されたといわれています。

GoFの23パターン

一般的にはデザインパターンというと、GoF本で紹介されている23個のパターンを指すことが多いですが、もっと広義の意味で、「よく出る問題とそのスマートな解決策」という意味合いで使われることもあります。

パターンにとらわれずに自分の力で設計することでも同様の成果が得られる可能性はありますが、冒頭にお伝えしたようにオブジェクト指向では「再利用」や「生産性」、「信頼性」といったキーワードを重視しています。それらをカバーしているのが先人の知恵が詰め込まれたGoFの23パターンなのです。

また、デザインパターンを習得している技術者同士であれば、共通言語として23個のデザインパターン名を会話の中に取り入れることで認識のずれが少なくなるといったメリットもあるでしょう。

2016年振り返り

4月早々に車を買いました。10数年前から憧れていた車に乗ることができた超ハッピーな月です。非常に悩みました。車は欲しいけど、車がない生活ができないでもない。嫁さんになんて言おうかと。。。思いきって相談してみてよかったと心から思っています。

ぼっちAdvent Calendar風ルール

  • 1日1記事更新する
  • 記事内に1年間の出来事の振り返りを1つ明記する
  • 1日の期間は起きてから寝るまで(時刻ではない)

ぼっちAdvent Calendar風イベントとは?下記の記事をご覧ください。