[解決済み] デザインパターンとアーキテクチャパターンの違いは何ですか?
質問
について読むと デザインパターン インターネット上では、3つのカテゴリーに分類されていることがわかります。
- 創作
- 構造的
- ビヘイビア
しかし、ソフトウェアのアーキテクチャを作るときには、MVPやMVC、MVVMについて考えることになります。
例えば、クリエイティブ・パターンの中で、私が見つけたのは シングルトンパターン しかし、私のMPVでもsingletonを使用したことがあります。
そこで質問なのですが、デザインパターンとは、製品の全体的な構造を表すものなのでしょうか?
-
もしそうなら、シングルトンはどのようにデザインパターンになり得るのでしょうか?なぜなら、私のアプリケーションのどこでも使うことができるからです。基本的には、メモリ上に一度に1つのインスタンスしか作成できないように制限されていますが、このコンセプトがソフトウェアの設計方法を定義しているのではないでしょうか?
-
そうでないとすると、MVP、MVC、MVVMはパターンの3つのカテゴリーの中でどこに位置するのでしょうか。また、ソフトウェアの設計とアーキテクチャの違いは何でしょうか?
どのように解決するのですか?
詳細な説明が必要ですが、私の知る限りでは、その違いをスケッチしてみます。
パターン は、プログラムの中に見出される共通点を抽出したものです。大きな複雑な構造を分解し、単純な部品を使って構築することができる。これは、ある種の問題に対する一般的な解決策を提供する。
大規模で複雑なソフトウェアは、さまざまなレベルで一連の解体を経ることになります。大きなレベルでは、アーキテクチャ・パターンがツールになります。また、実装レベルでは、プログラミングパラダイムが道具となる。
パターンは非常に異なるレベルで発生する可能性があります。参照 フラクタル . クイックソート,マージソートは,いずれも要素群を順序立てて整理するためのアルゴリズムパターンである.
最も単純化した見方をすると
- プログラミングパラダイム - プログラミング言語固有
- デザインパターン - ソフトウェア構築において繰り返し発生する問題を解決します。
- アーキテクチャのパターン - ソフトウェアシステムにおける基本的な構造構成
イディオム は、低レベルの詳細を埋める、パラダイム固有かつ言語固有のプログラミング技術です。
デザインパターン は、通常、コードレベルの共通性に関連しています。より小さなサブシステムを洗練させ構築するための様々なスキームを提供する。これは通常、プログラミング言語の影響を受けます。いくつかのパターンは、以下の理由で無意味になる。 言語パラダイム . デザインパターンは、実体やその関係の構造や振る舞いの一部を具体化する、中規模の戦術です。
一方 アーキテクチャーパターン は、デザインパターンよりも高いレベルでの共通性と見なされている。 アーキテクチャパターンは、大規模なコンポーネント、システムのグローバルな特性やメカニズムに関わる高水準の戦略である。
パターンはどのようにして得られるのか? それは
- 再利用する。
- 分類
- そして最後に共通点を抽出するために抽象化します。
以上のような考えをお持ちの方は、ぜひ参考にしてください。シングルトンはデザイン・パターンであり、MVCはアーキテクチャ・パターンの1つで、関心事の分離に対処するものであることがおわかりいただけると思います。
読み進めてみてください。
関連
-
[解決済み] MVPとMVC、その違いは何ですか?
-
[解決済み] シングルトン・パターンの欠点やデメリットは何ですか?[クローズド]
-
[解決済み] 静的クラスとシングルトンパターンの違い?
-
[解決済み] RESTとRESTfulの違いは何ですか?
-
[解決済み] Abstract FactoryとFactoryのデザインパターンの違いは何ですか?
-
[解決済み】関数型プログラミングはGoFデザインパターンに取って代わるか?
-
[解決済み】リレーショナルデータベースデザインパターン?[クローズド]
-
[解決済み】インターフェイスを作成するタイミングはどのように判断するのでしょうか?
-
[解決済み] KotlinでBuilderパターンを実装するには?
-
[解決済み] Facade、Proxy、Adapter、Decoratorのデザインパターンの違い?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] MVPとMVC、その違いは何ですか?
-
[解決済み】ファサードデザインパターンとは何ですか?
-
[解決済み] KotlinでBuilderパターンを実装するには?
-
[解決済み] シェルスクリプトのデザインパターンやベストプラクティス [終了しました]。
-
[解決済み] Facade、Proxy、Adapter、Decoratorのデザインパターンの違い?
-
[解決済み] クロスカットの懸念事項の例
-
[解決済み] リポジトリとサービスの違い?
-
[解決済み】デザインパターンを勉強するには?[クローズド]。
-
[解決済み] ゲームにおけるリプレイの概念的な仕組みについて教えてください。
-
[解決済み] ソーシャルネットワークにアクティビティストリームを実装する方法