🐺

デザインパターンまとめ

2024/01/13に公開

概要

デザインパターンの勉強がてら、「Java言語で学ぶデザインパターン入門」を読んでみた。
書籍でも紹介されている、GoF(the Gang of Four)が作成した23個のデザインパターンについてメモがてら残す。

まずは慣れる

デザインパターンは結構複雑なものもあるためやりやすいところから始める。

Gofによるデザインパターンの分類

GoFではデザインパターンを以下のように分類している

生成に関するパターン

  • Factory Method - インスタンス作成をサブクラスに任せる -
  • Singleton - たった一つのインスタンス -
  • Prototype - コピーしてインスタンスを作成する -
  • Builder - 複雑なインスタンスを組み立てる -
  • Abstract Factory - 関連するパーツを組み合わせて製品を作る -

構造に関するパターン

  • Adapter - 再利用 -
  • Bridge - 機能の階層と実装の階層を分ける -
  • Composite - 容器と中身の同一視 -
  • Decorator - 飾り枠と中身の同一視 -
  • Facade - シンプルな窓口 -
  • Flyweight - 同じものを共有して無駄をなくす -
  • Proxy - 必要になってから作る -

振る舞いに関するパターン

  • Iterator - 処理を繰り返す -
  • Template Method - 具体的な処理をサブクラスに任せる -
  • Strategy - アルゴリズムをごっそり切り替える -
  • Visitor - 構造を渡り歩きながら仕事をする -
  • Chain of Responsibility - 責任のたらい回し -
  • Mediator - 相手は相談役一人だけ -
  • Observer - 状態の変化を通知する -
  • Memento - 状態を保持する -
  • State - 状態をクラスとして表現する -
  • Command - 命名をクラスにする -
  • Interpreter - 文法規則をクラスで表現する -

Discussion