IT用語: デザインパターンとは|GoFの23パターンと代表例
ソフトウェア設計でよく直面する問題への定番解決策「デザインパターン」の概念とシングルトン・ファクトリー等の代表パターンを解説。
デザインパターンとは
デザインパターンは、ソフトウェア開発で繰り返し登場する設計上の問題に対する「定石(定番の解決策)」です。1994年にGang of Four(GoF)が書籍でまとめた23パターンが有名で、「シングルトン」「ファクトリー」「オブザーバー」等の名前で知られています。
代表的なパターン
| パターン | 種類 | 概要 |
|---|---|---|
| Singleton | 生成 | クラスのインスタンスを1つだけに制限 |
| Factory | 生成 | オブジェクト生成をサブクラスに委譲 |
| Observer | 振る舞い | 状態変化を複数のオブジェクトに通知 |
| Strategy | 振る舞い | アルゴリズムを動的に切り替え |
| Decorator | 構造 | 既存オブジェクトに機能を動的に追加 |
なぜ重要なのか?
チーム開発でコードを読む際、「これはObserverパターンだ」と分かればコードの意図が即座に伝わります。設計の意図を共通言語で伝えられることがデザインパターンの最大の価値です。
関連する用語 (プログラミング)
全33件を見るJAMstack
JavaScript・APIs・Markupの頭文字をとったWebアーキテクチャ。ビルド時に静的HTMLを生成し、動的機能はAPIで補完することで高速・安全・スケーラブルなWebサイトを実現する。
Jest(ジェスト)
MetaがReact向けに開発したJavaScript/TypeScriptのテストフレームワーク。ゼロ設定で動作・スナップショットテスト・モック機能を標準搭載し、フロントエンドテストのデファクトスタンダード。
Python (パイソン)
AI(人工知能)やデータ分析の分野で世界的に最も人気のあるプログラミング言語。
PHP
Webサイトの裏側(サーバー側)で動くシステムを作るために特化したプログラミング言語。WordPressのベースでもある。
Go / Golang (ゴー言語)
Google社が開発した、処理速度が超絶爆速で、大量のアクセスに強い現代的なプログラミング言語。
ESLint
JavaScriptとTypeScriptのコードを静的解析し、潜在的なバグや規約違反を検出するリンター。プロジェクト全体で一貫したコードスタイルを強制し、コードレビューの負担を軽減する。