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