【でざいんぱたーん】

デザインパターン とは?

最終更新:
💡 繰り返す設計の問題に、解決の型を使う

繰り返し現れるソフトウェア設計の問題に対する、再利用できる解決の考え方。コード部品との違い、適用条件と利点・負担を解説します。

📌 このページのポイント
デザインパターン:Adapterでつなぐ使う側期待する呼び方Adapter変換役形を合わせる既存の部品元の呼び方合わないインターフェースをつなぐ問題に合う型を選び、利点と負担を確認
Adapterという一つのパターンの例です。矢印は呼び出し方向で、返される結果は省略しています。完成したコード部品そのものではありません。
ひよこ ひよこ
デザインパターンは、何を覚えるもの?
ペンギン先生 ペンギン先生
繰り返し出会う設計の問題について、どう解決するかという考え方の型だよ。名前だけでなく、どんな状況に向くか、使うと何が変わるかを一緒に考えるんだ。
ひよこ ひよこ
便利なコードをそのまま使うこと?
ペンギン先生 ペンギン先生
完成した部品とは違うよ。対象のプログラムや言語に合わせて、役割や関係を具体的なコードにする。パターンの説明にコード例があっても、どこでもそのまま使える保証ではないんだ。
ひよこ ひよこ
具体的な例を教えて。
ペンギン先生 ペンギン先生
Adapterは、使いたい部品のインターフェースが合わないときに、呼び出す側が期待する形へ合わせる考え方だよ。既存の部品と利用側をつなぐ、変換役を用意するイメージなんだ。
ひよこ ひよこ
全部で23種類だけなの?
ペンギン先生 ペンギン先生
GoFの書籍が整理したオブジェクト指向のパターンは23種類だよ。デザインパターン全体がその23種類だけという意味ではない。言語の機能によって、同じ問題を別の形で解く場合もあるんだ。
ひよこ ひよこ
たくさん使うほど、よい設計?
ペンギン先生 ペンギン先生
数が目的ではないよ。今の問題や変更に合うか、分かりやすさや構成の負担も含めて判断する。チームで名前を共有できる利点はあるけれど、なぜ使ったかも説明できると役に立つね。
もっと詳しく知りたい人へ

パターン名だけで、実装の形は一つに決まる?

決まりません。適用する言語、必要な機能、既存の構成に合わせて実装します。パターンを共通の手掛かりにしつつ、対象の問題と具体的な役割を確認します。

関数型や動的な言語では、パターンは不要?

一律にはいえません。GoFの著者は、言語によって一部の問題を別の機能で解けることや、言語に合う別のパターンがあることを説明しています。同じクラス構成をどの言語にも当てはめる必要はありません。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「デザインパターン」って出てきたら「繰り返す設計の問題に使う、解決の考え方の型」と思えばだいたいOK!
📖 おまけ:英語の意味
「Design Pattern」 = 設計のパターン
💬 ソフトウェアでは、繰り返し現れる設計の問題と、その解決方法を名前や適用条件とともに整理します。GoFと呼ばれる四人の著者の書籍がよく知られています。

参考資料

← 用語集にもどる