ソフトウェアパターン

パターンとは、日本語にすると「型」と言う意味ですから、設計するときの型ということになります。プログラミングを例に取ってみますと、処理内容は100件のデータを読み込んで、そのデータをソートすることです。プログラム言語には、C言語を使います。さて、プログラマはどのようにプログラムを考えるのでしょうか。たぶん、次のような思考をめぐらします。「まずデータの格納用に配列を取りforループで100回まわしてデータを読み込む、その後にクイックソート、バブルソートなどのアルゴリズムを使ってソートを行う。読み込みはfor文で、ソートはアルゴリズムを使って・・・」ということが、まさにパターンにあたるのです。

1、デザインパターン

デザインパターンとは、プログラムを設計する時に、定石に従って作成するということです。デザインパターンは、この定石をパターンとして、カタログ化しているものです。そして、必要な時にカタログからパターンを引き出して、適用していれば、間違いないプログラムが作成できます。デザインパターンは、実装を適用した設計に必要不可欠な技術であると同時に、オブジェクト指向の設計なくしては、出来ないと言っても過言ではありません。

2、アンチパターン

アンチパターンとは、デザインパターンが設計をする為の、パターンであるのに対し、何度も繰り返される失敗や駄目な解決方法をパターン化したものです。失敗をパターン化して、そうならない一般的な解決方法を示そうとしています。パターンをテンプレートとして利用する事で、失敗を繰り返さない為の解決策を得ることが出来ます。テンプレートには、アンチパターンの背景説明、一般形式、兆候と結果、根本的な原因、解決策と解決する為の実施例が含まれています。アンチパターンとして、溶岩流(LavaFlaw)、配管システム(StovepipeSystem)などがあります。

3、アナリシスパターン

アナリシスパターンは、オブジェクト指向に基づいて、汎用的な業務ドメインを言語的な実装に依存せず、オブジェクト指向モデルで実現しパターン化したものです。