読み方 : ゴフ

GoF【The Gang of Four】ギャング・オブ・フォー

概要

GoFとは、オブジェクト指向プログラミングにおける再利用性の高い設計手法を23種類の「デザインパターン」として体系化した書籍の4人の著者グループ。また、同書で紹介されているデザインパターンのこと。
GoFのイメージ画像

1994年に出版された『Design Patterns: Elements of Reusable Object-Oriented Software』(邦題:オブジェクト指向における再利用のためのデザインパターン)という書籍の共同執筆者であるエーリッヒ・ガンマ(Erich Gamma)、リチャード・ヘルム(Richard Helm)、ラルフ・ジョンソン(Ralph E. Johnson)、ジョン・ブリシディース(John M. Vlissides)の4名を指す。

この本は、ソフトウェア開発において繰り返し現れる問題に対し、先人たちが編み出した効率的な解決策をカタログ化して提示したものである。当時、オブジェクト指向の概念は広まりつつあったが、具体的な設計の定石が共有されていなかったため、本書は世界中のエンジニアに多大な影響を与え、現代のプログラミングにおける共通言語となった。

GoFデザインパターン

文脈によっては、4名が著書で示した「GoFデザインパターン」のことを「GoF」と略すことがある。23種類のデザインパターンは、その目的によって「生成」(creational)、「構造」(structural)、「振る舞い」(behavioral)の三つに分類される。

生成に関するパターンは、インスタンスの作成を柔軟に行うための仕組みであり、一つしか存在しないことを保証するSingletonパターンなどが有名である。構造に関するパターンは、クラスオブジェクトを組み合わせてより大きな構造を作るための知恵であり、既存のインターフェースを変換するAdapterパターンなどが含まれる。振る舞いに関するパターンは、オブジェクト間の通信や役割分担を整理するもので、状態の変化を通知するObserverパターンなどが代表的である。

これらのパターンを適用することで、開発者は先人の築いたベストプラクティスを活用することができ、変更や拡張が容易な生産性の高いコードを記述することができる。また、「GoF」の名称を介して「この部分はObserverパターンで実装する」と伝えるだけで設計意図を正確に共有できるため、チーム開発におけるコミュニケーションコストの削減にも寄与している。各パターンは特定のプログラミング言語に依存しない汎用的な論理であり、Java、C++、Pythonといった多くの言語で今日でも広く活用されている。

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。