デザインパターン デザインパターンとは?

07/11/2003
デザインパターン
デザインパターンとは?
システムの設計,ソフトウェア設計におけるシステム構成およびプログラムの典型的な定石(パターン).
23のパターンから構成される.
1995 年に Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides の4名(この4人を通称 The Gang of
Four (略称 GoF) と呼ぶ)がソフトウェア設計におけるコード再利用のためのパターン(デザインパターン)に
関する本(「オブジェクト指向における再利用のためのデザインパターン」通称「GoF 本」)を発表.この本でデ
ザインパターンの体系化させ,世間に広く普及させた.
デザインパターンの目的(長所)
・再設計に役立つ(既存のシステムを再利用することで、ゼロから設計をする必要がなくなる)
・デザインパターンの名称を使って概念を共有化できる
・オブジェクト指向設計の入門書として役立つ
デザインパターンの種類とパターンの特徴
分類
パターン名
Abstract Factory
Builder
生成に関するパターン
Factory Method
Prototype
Singleton
Adapter
Bridge
Composite
Decorator
構造に関するパターン
Façade
Flyweight
Proxy
振る舞いに関するパターン
Chain of Responsibility
Command
Interpreter
Iterator
Mediator
Memento
Observer
State
−1−
特徴
オブジェクト群を明確化せず生成
するためのインターフェースを提供
する
オブジェクトを複合的に組み合わ
せる
インスタンス化をサブクラスに任せ
る
コピーして新しいオブジェクトを生
成する
インスタンスが1つしかないことを保
証する
インターフェースに互換性の無いク
ラス同士を組み合わせる
機能と実装を別々の階層で拡張す
る
オブジェクトを木構造に組み立てる
動的にオブジェクトに責任を追加で
きるようにする
複数のインスタンスに高いレベルの
統一インターフェースを与える
インスタンスを共有しコストを節約す
る
オブジェクトへのアクセスを制御す
るために処理を代理人に任せる
要求に応じる役割をチェーン状に
つなげる
命令をカプセル化して再利用する
文法規則を表現する
構造に順にアクセスする方法を提
供する
オブジェクト同士の結合度を低める
インスタンスの状態を戻すことがで
きるようにする
状態の変化が自動的に通知され,
更新される
状態にあわせて動作を変える
07/11/2003
Strategy
Template Method
Visitor
アルゴリズムをカプセル化し交換可
能にする
特定の処理をサブクラスで行う
構造と処理を分離する
(上記の表は UML Press Vol.1 (技術評論社) p43 より)
デザインパターン関連の参考文献
[デザインパターンの原典]
“Design Patter: Elements of Reusable Object-Oriented Software”,
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides 著
「オブジェクト指向における再利用のためのデザインパターン 改訂版」
本位田真一,吉田和樹 監訳 ソフトバンクパブリッシング
[Java 言語に対応する本]
Java 言語で学ぶデザインパターン入門 結城浩 著 ソフトバンク
Java 実例プログラムによるデザインパターン入門講座
ジェイムズ・W・クーパー 著 安藤慶一 訳 ピアソン・エデュケーション
[UML 関連の本(初心者用)]
かんたん UML
オージス総研 著 千藤雅弘 監修 翔泳社
わかりやすい UML 入門 樫山友一,日野泰臣 著 オーム社
[UML 関連の雑誌]
UML Press 技術評論社
[デザインパターンの情報 HP]
デザインパターンホームページ: www.hillside.net/patterns
Design Patterns in Wiki: c2.com/cgi/wiki?DesignPatterns
Object Mentor: www.objectmentor.com
[UML の情報 HP]
UML Resource Page: www.omg.org/uml
Object Management Group : www.omg.org
UML 技術者情報: www.rational.co.jp/uml/index.html
UML 技術者認定制度などの情報: www.ogis-uml-university.com
−2−