デザインパターン 生成、構造、振る舞いの分類

デザインパターンはよく「生成」「構造」「振る舞い」の三つに分けられるらしい。簡単に調べたのでまとめる。自分が必要としているものがあったら分類から考えた方がいいパターンが見つかりやすい。メモ用なのでほぼ説明文借りてますすみませんJavaデザインパターン全23種の特長をスッキリ解説

「生成」

オブジェクトは必ずはじめに生成される。オブジェクトをどうやって生成するかという問いに対するパターン

Builderパターン 元となる専用のクラスを用意し、複数のオブジェクトを生成
Abstract Factory 関連する部品(オブジェクト群)をまとめて一つのシステムを生成するための手順を抽象化
Singleton 1つのクラスから1つのインスタンスだけを生成するように制限

「構造」

オブジェクトは一つだけでなく複数のオブジェクトが必ず使われる。それらをどうやって組み合わせるかという問いに対するパターン

Adaptor 本来関連のないクラス同士を関連付ける
Bridge 機能を拡張するクラスと実装するクラスを分離し、その間の橋渡しを行う
Decorator 機能を次々に追加する

「振る舞い」

オブジェクトは必ず他オブジェクトとやり取りをする。どうやってオブジェクトに振る舞いをさせるかという問いに対するパターン

Command 命令をオブジェクトにする。
Iterator 複数のオブジェクトを順番に指し示し、全体をスキャンしていく処理を行う
Observer if文を利用することなく、状態変化に対応した処理を実行