私たちが読むときデザインパターンインターネットでは、3 つのカテゴリがあることがわかります。
- 創造的
- 構造的
- 行動
しかし、ソフトウェアのアーキテクチャを作成するときは、MVP、MVC、または MVVM について考えます。
例えば、創造のパターンの中には、シングルトンパターン、しかし、私は MPV でもシングルトンを使用しました。
そこで私の質問は、デザイン パターンは製品の全体的な構造であるかどうかです。
もしそうなら、シングルトンはどのようにしてデザイン パターンになるのでしょうか。アプリケーションのどこでも使用できるからです。基本的に、メモリ内に一度に 1 つのインスタンスを作成するように制限されていますが、この概念はソフトウェアの設計方法を定義するのではないですか。
そうでない場合、3 つのパターン カテゴリのどこに MVP、MVC、MVVM があるのでしょうか。また、ソフトウェアの設計とアーキテクチャの違いは何でしょうか。
ベストアンサー1
詳細な説明が必要ですが、私の知る限りで違いを概説してみたいと思います。
パターンプログラムに見られる共通性を凝縮したものです。これにより、大規模で複雑な構造を分解し、単純なパーツを使用して構築することができます。また、一連の問題に対する一般的な解決策を提供します。
大規模で複雑なソフトウェアは、さまざまなレベルで一連の分解を経ます。大きなレベルでは、アーキテクチャ パターンがツールです。小さなレベルでは、デザイン パターンがツールであり、実装レベルでは、プログラミング パラダイムがツールです。
パターンはさまざまなレベルで発生する可能性があります。フラクタルクイックソート、マージソートはすべて、要素のグループを順序に従って整理するためのアルゴリズムパターンです。
最も単純な見方をすると:
- プログラミングパラダイム- プログラミング言語に特有
- デザインパターン- ソフトウェア構築における繰り返し発生する問題を解決します
- アーキテクチャパターン- ソフトウェアシステムの基本的な構造構成
イディオム低レベルの詳細を埋めるパラダイム固有および言語固有のプログラミング手法です。
デザインパターン通常はコードレベルの共通性に関連しています。より小さなサブシステムを改良し構築するためのさまざまなスキームを提供します。通常はプログラミング言語の影響を受けます。いくつかのパターンは、言語パラダイムデザイン パターンは、エンティティの構造と動作、およびエンティティ間の関係の一部を具体化する中規模の戦術です。
その間建築パターンデザイン パターンよりも高いレベルの共通性として見なされます。アーキテクチャ パターンは、大規模なコンポーネント、システムのグローバルなプロパティとメカニズムに関係する高レベルの戦略です。
パターンはどのようにして取得されますか?
- 再利用、
- 分類
- そして最後に、共通性を抽出するための抽象化を行います。
上記の考え方に従っていれば、シングルトンは「デザイン パターン」であり、MVC は関心の分離を扱う「アーキテクチャ」パターンの 1 つであることがわかります。
以下を読んでみてください: