デザインパターン 活用のための背景知識・よくある誤解など

2020/08/31 09:32

GoFのデザインパターンを学ぶ上での心構え的な内容を動画でわかりやすくお伝えしました。建築にあった「よくある課題と解法のカタログ」の概念をソフトウェア設計にも導入した事で、先人の知恵を扱いやすくなりました。結果として名前とクラスの構造が関連づいた事で、設計時の語彙としても活用できるようになったというような話をまとめています。18分の動画です。

GoFのデザインパターン

デザインパターンの出自的なところから、どういう観点で学んでいくとメリットが大きそうかという話を話者の観点で提示してみました。GoF本等にも書かれている事を拾っているのでそれほど大外しはしていないはずです。

デザインパターンの歴史

  • 建築の分野で「デザインパターン」というものがありました。どのように建築をしていくとより良いものになるか、美しいか、のような観点でまとめたカタログのようなものです。
  • 上記を建築ではなくソフトウェアにも適用しようとしたのがGang of Four と呼ばれた4人の技術者です。
  • 最初のデザインパターン本が通称GoF本と呼ばれていて、現在ソフトウェアで「デザインパターン」と呼ぶとこのGoF本に書かれた23のパターンを指す事がほとんどです(もちろん他にもパターンと呼ばれるものはあります)。

デザインパターンとは

  • 目的・背景 / 解法(設計方法) / メリット / デメリット(これは場合によってでした) などが端的にまとまっている設計カタログのようなものです。
  • 載っているから優れているものであるなどの権威付けをしようと言うよりも「よくある問題を解決する一つの設計はこう」というものがまとまっています。
  • 名前と構造が紐づいた結果、コミュニケーションする際に一言で設計を伝える事ができる「語彙」としての役割があります(話者的にはこの意味の評価が高いので力が入っています)。

デザインパターンの現在との解離

かなり古い書籍なので、当時のソフトウェア開発の背景に強く依存したものになっています。「C++の欠点を補うようなものが含まれている」というような事もよく言われました。WEBの開発というよりも、クライアントにインストールするソフトウェアを作成する方が多いような時代だったので、WEBのサーバーサイド等ではあまり使わないようなものがあったりするかもしれませんが、クライアントでは有効なパターンだったりします。

この記事を書いた人

佐藤 正志

サークルアラウンド株式会社 代表取締役

関連記事