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

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といった多くの言語で今日でも広く活用されている。