【でざいんぱたーん】

デザインパターン とは?

💡 設計の「定石集」—先人の知恵を再利用する
📌 このページのポイント
デザインパターンの分類(GoF) 生成 (Creational) オブジェクトの作り方 Singleton インスタンスを1つに制限 Factory 生成処理をサブクラスに委譲 Builder, Prototype ... 構造 (Structural) クラスの組み合わせ方 Adapter 互換性のないIFを変換 Decorator 機能を動的に追加 Facade, Proxy ... 振る舞い (Behavioral) オブジェクト間の連携 Observer 状態変化を通知・監視 Strategy アルゴリズムを切替可能に Command, Iterator ...
デザインパターンの分類
ひよこ ひよこ

デザインパターンって何?

ペンギン先生 ペンギン先生

ソフトウェア設計で「このような問題にはこう解くと良い」という定石集だよ。建築の設計パターンに着想を得て、GoF(Gang of Four)が23パターンをカタログ化した。車輪の再発明を防ぎ、チーム内で「Observerパターンで実装しよう」のように共通言語として使えるのが強みだね

ひよこ ひよこ

よく使うパターンは?

ペンギン先生 ペンギン先生

①Singleton(インスタンスを1つだけ保証)、②Factory(オブジェクト生成をカプセル化)、③Observer(イベント通知の仕組み)、④Strategy(アルゴリズムを交換可能に)、⑤Adapter(インターフェースの変換)。この5つを覚えれば実務で十分戦えるよ

ひよこ ひよこ

パターンを覚えるコツは?

ペンギン先生 ペンギン先生

「どんな問題を解決するパターンか」をセットで覚えること。例えばObserverなら「複数のオブジェクトに変更を通知したい」、Strategyなら「処理を実行時に切り替えたい」。問題→パターンの対応で覚えると実践で使えるようになるよ

ひよこ ひよこ

パターンを使いすぎるとダメ?

ペンギン先生 ペンギン先生

「パターン病」と呼ばれるアンチパターンだね。シンプルなif文で済む場面にStrategyパターンを適用するとコードが無駄に複雑になる。パターンは「問題があって初めて適用する」もので、使うこと自体が目的になってはいけない。YAGNI(You Ain't Gonna Need It)の精神が大事だよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「デザインパターン」って出てきたら「設計の定石・ベストプラクティス集」と思えればだいたいOK!
📖 おまけ:英語の意味
「Design Pattern」 = 設計パターン
💬 Design(設計)のPattern(パターン=定石)。1994年のGoF本で体系化されたよ
← 用語集にもどる