デザインパターン
デザインパターンとは
デザインパターンとは
デザインパターンとは、ソフトウェア設計時に起こる典型的な問題とそれに対する解決策を整理し、再利用できるように命名・カタログ化したものです。
「このような問題を解決するには、こういう構造のプログラムを書けばいい」という過去のソフトウェア設計者が発見し編み出した設計ノウハウを蓄積しています。
デザインパターンを利用することで、「再利用性の高い柔軟な設計」ができるようになるとともに、プロジェクト内で統一規約を持つことで「意思疎通が容易になる」という利点を得られます。
デザインパターンの注意点
設計に行き詰った際には、デザインパターンから良いアイディアを与えてくれるものを参考とすることが薦められています。
しかし、無理にパターンをあてはめようとしてしまうことで生産性や効率性を低下させてしまう場合もあります。
適切に用いることで柔軟性の高いソフトウェアを作ることができますが、誤った場合には複雑で柔軟性の低いソフトウェアとなる危険性があります。
GoFのデザインパターン
GoF(the Gang of Four)とは
GoFとは、Erich Gamma, Richard Helm, Ralph Johnson, John Vlissidesの四人のエンジニアのことです。
この4名が1995年に出版した「オブジェクト指向における再利用のためのデザインパターン」という書籍は、デザインパターンという手法を広く認知させることになりました。
この著書で解説された23の実装パターンは「GoFのデザインパターン」と呼ばれます。
GoFのデザインパターンは、オブジェクト指向開発のためのパターンとして生成、構造、振舞いの3カテゴリから構成されます。
生成に関するパターン
- デザインパターン-FactoryMethod
- デザインパターン-Builder
- デザインパターン-Prototype
- デザインパターン-Singleton
- デザインパターン-AbstractFactory
構造に関するパターン
- デザインパターン-Adapter
- デザインパターン-Bridge
- デザインパターン-Composite
- デザインパターン-Decorator
- デザインパターン-Facade
- デザインパターン-Flyweight
- デザインパターン-Proxy
振る舞いに関するパターン
- デザインパターン-Iterator
- デザインパターン-TemplateMethod
- デザインパターン-ChainOfResponsibility
- デザインパターン-Command
- デザインパターン-Interpreter
- デザインパターン-Mediator
- デザインパターン-Memento
- デザインパターン-Observer
- デザインパターン-State
- デザインパターン-Strategy
- デザインパターン-Visitor
その他のデザインパターン
J2EEパターン
サーブレット/JSP/EJB/JMXを中心にJ2EEに特化したデザインパターン集。
アナリシスパターン
医療、在庫管理、会計、金融などの具体的な業務システムにおける設計やモデリングパターン。
アーキテクチャパターン
MVCやレイヤなどシステム全体のアーキテクチャ(構造)をパターン化したもの。
アンチパターン
「やってはいけない」不適切な解決策をカタログ化したもの。