デザインパターンとは?
デザインパターンは、 ソフトウェア設計でよく起きる問題に対する典型的な解決方法です。 これらは、 事前に用意された、 問題解決のための設計図で、 自分の開発しているコードで繰り返し起きる設計上の問題の解決に適用できます。
デザインパターンは、 それを見つけてプログラムにコピーすればいい、 というものではありません。 既製の関数やライブラリーとは違います。 パターンは特定のコードではなく、 特定の問題を解決するための一般的な概念です。 パターンの詳細に従い、 自分のプログラムの現実に合うように解決策を実装することができます。
パターンは、 しばしばアルゴリズムと混同されます。 なぜなら、 どちらの概念も、 いくつかの既知の問題を解決するための典型的な方法を記述しているからです。 アルゴリズムは、 目標を達成するための明確な一連の行動を常に定義しますが、 パターンは解法に関するもっと高度なレベルの説明をします。 同じパターンを二つの異なるプログラムに適用すると、 そのコードは異なるかもしれません。
アルゴリズムは、 言ってみれば料理のレシピです。 どちらも目標を達成するための明確なステップがあります。 一方、 パターンは設計図のようなものです。 結果とその特徴を見ることができます。 しかし厳密な実装の順番は、 あなた次第です。
パターンは何でできていますか?
ほとんどのパターンは、 様々な状況下で再現できるよう、 公式に記述されています。 通常、 パターンの記述には、 以下の部分が含まれています:
- パターンの意図は、 問題と解決策の両方を簡単に説明。
- 動機は、 問題とパターンが達成する解決策をさらに説明。
- クラスの構造は、 パターンの各部分と部分間の関係を説明。
- 普及しているプログラミング言語の一つによるコード例により、 パターンの背後にあるアイディアの理解を容易にする。
パターン・カタログによっては、 パターンの適応性、 実装手順、 他のパターンとの関係など、 他の役立つ詳細情報も掲載されています。