【でざいんぱたーん】
デザインパターン とは?
最終更新:
💡 繰り返す設計の問題に、解決の型を使う
繰り返し現れるソフトウェア設計の問題に対する、再利用できる解決の考え方。コード部品との違い、適用条件と利点・負担を解説します。
📌 このページのポイント
- 繰り返し現れる設計の問題と解決の考え方を整理
- 完成したコードをそのまま貼り付ける部品ではない
- GoFの書籍には23のオブジェクト指向のパターン
- 問題に合うか、利点と増える負担を確かめて使う
デザインパターンは、何を覚えるもの?
繰り返し出会う設計の問題について、どう解決するかという考え方の型だよ。名前だけでなく、どんな状況に向くか、使うと何が変わるかを一緒に考えるんだ。
便利なコードをそのまま使うこと?
完成した部品とは違うよ。対象のプログラムや言語に合わせて、役割や関係を具体的なコードにする。パターンの説明にコード例があっても、どこでもそのまま使える保証ではないんだ。
具体的な例を教えて。
Adapterは、使いたい部品のインターフェースが合わないときに、呼び出す側が期待する形へ合わせる考え方だよ。既存の部品と利用側をつなぐ、変換役を用意するイメージなんだ。
全部で23種類だけなの?
GoFの書籍が整理したオブジェクト指向のパターンは23種類だよ。デザインパターン全体がその23種類だけという意味ではない。言語の機能によって、同じ問題を別の形で解く場合もあるんだ。
たくさん使うほど、よい設計?
数が目的ではないよ。今の問題や変更に合うか、分かりやすさや構成の負担も含めて判断する。チームで名前を共有できる利点はあるけれど、なぜ使ったかも説明できると役に立つね。
もっと詳しく知りたい人へ
パターン名だけで、実装の形は一つに決まる?
決まりません。適用する言語、必要な機能、既存の構成に合わせて実装します。パターンを共通の手掛かりにしつつ、対象の問題と具体的な役割を確認します。
関数型や動的な言語では、パターンは不要?
一律にはいえません。GoFの著者は、言語によって一部の問題を別の機能で解けることや、言語に合う別のパターンがあることを説明しています。同じクラス構成をどの言語にも当てはめる必要はありません。
まとめ:ざっくりこれだけ覚えればOK!
「デザインパターン」って出てきたら「繰り返す設計の問題に使う、解決の考え方の型」と思えばだいたいOK!
📖 おまけ:英語の意味
「Design Pattern」 = 設計のパターン
💬 ソフトウェアでは、繰り返し現れる設計の問題と、その解決方法を名前や適用条件とともに整理します。GoFと呼ばれる四人の著者の書籍がよく知られています。