詳細な説明が必要ですが、私の知る限りの違いをスケッチしてみます。
パターンは、プログラムに見られる共通点を抽出したものです。これにより、大規模で複雑な構造を分解し、単純なパーツを使用して構築することができます。これは、ある種の問題に対する一般的な解決策を提供します。
大規模で複雑なソフトウェアは、さまざまなレベルで一連の分解を行います。大まかに言えば、建築パターンはツールです。小規模なレベルでは設計パターンがツールであり、実装レベルではプログラミングパラダイムがツールです。
パターンは非常に異なるレベルで発生する可能性があります。フラクタルを参照してください。クイックソート、マージソートはすべて、要素のグループを順番に整理するためのアルゴリズムパターンです。
最も単純なビューの場合:
- プログラミングパラダイム -プログラミング言語に固有
- 設計パターン -ソフトウェア構築で繰り返し発生する問題を解決します
- アーキテクチャパターン -ソフトウェアシステムの基本的な構造編成
イディオムは、低レベルの詳細を埋めるパラダイム固有および言語固有のプログラミング手法です。
デザインパターンは通常、コードレベルの共通性に関連付けられています。これは、より小さなサブシステムを改良および構築するためのさまざまなスキームを提供します。通常はプログラミング言語の影響を受けます。言語のパラダイムにより、いくつかのパターンは取るに足らないものになります。デザインパターンは、エンティティとその関係の構造と動作の一部を具体化する中規模の戦術です。
一方で、建築パターンは、デザインパターンよりも高いレベルで共通と見られています。アーキテクチャパターンは、システムの大規模なコンポーネント、グローバルプロパティ、およびメカニズムに関する高レベルの戦略です。
パターンはどのように取得されますか?使って:
- 再利用、
- 分類
- そして最後に、共通点を抽出するための抽象化です。
上記の考えに従っている場合。シングルトンは「設計パターン」であり、MVCは懸念の分離に対処するための「アーキテクチャ」パターンの1つであることがわかります。
読んでみてください:
- http://en.wikipedia.org/wiki/Architectural_pattern_(computer_science)
- http://en.wikipedia.org/wiki/Design_pattern
- http://en.wikipedia.org/wiki/Anti-pattern