3層システムの定義


8

人々は「3層(またはn層)アーキテクチャ」に従っているとしばしば主張し、時にはドメインモデルに切り替えると主張することもあります。しかし、私はこの神秘的な「3層アーキテクチャ」が何であるかを本当に理解したことがありません。正式な定義がないようです。ドメインモデルパターンを説明およびデモする参照や例は数多くありますが、3層への参照は、コードをUI、ビジネスロジック、およびデータアクセスレイヤーに分離することを示唆しています。そして、それは彼らが言うように見えるすべてです。

私が特に奇妙だと思うのは、ドメインモデルは、この3層のパラダイムを完璧に具現化したものだということです。ORMファイルとマッピングファイルはデータアクセスレイヤー、ドメインはビジネスロジック、UIはUIです。それではなぜ人々はそれが新しい何かであり、彼らが切り替えるべきものであるかのように話すのですか?

ドメインモデルを実装している人を見る前は、ほとんどのアプリケーションはUIであり、ロジックはUIとSPに分割されたストアドプロシージャにアクセスしていました。「UI」、「BLL」、「DLL」と呼ばれるいくつかのアセンブリが時々ありましたが、通常これらは単にUIとSP間のメディエーターであり、ロジックがランダムに分散するためのより多くの場所を残しました。

では、この神秘的な「3層」アーキテクチャとは何でしょうか。それは本当に存在していますか?もしそうなら、それがうまく実装されている例はどこにありますか?

回答:


9

3層アーキテクチャの定義は、n層アーキテクチャの特殊なケースです。n層アーキテクチャーにはn個のコンポーネントがあり、各コンポーネントは「すぐ上」および「下」のコンポーネントとのみ対話します。3層アーキテクチャには、このようなコンポーネントが3つあります。

通常、3層アーキテクチャは、ユーザー対話レイヤー、ビジネスルールレイヤー、およびデータサービス(データベースを含む)レイヤーで構成されます。ユーザーインタラクションレイヤーは、ビジネスルールレイヤーにリクエストを発行するだけです。ビジネスルールレイヤーは、さまざまなデータサービスからデータを取得して処理し、ユーザーインタラクションレイヤーを介してユーザーに返します。

n層アーキテクチャーは、アーキテクチャー・パターン(またはアーキテクチャー・スタイル)の例です。それは単にシステムのアーキテクチャに対するいくつかの制約を定義します。それ自体は、システムのアーキテクチャの完全なビューではありません。3層アーキテクチャのようなものを実装するシステムは確かにありますが、それはシステムの追加の設計と実装についての議論をセットアップすることを意図したパターンにすぎません。


基本的に、何を言っていることである... 3層アーキテクチャは、3層を持っているアーキテクチャであるということです正確に正しい答え:-)
イェルクWミッターク

@JörgWMittagかなり。ただし、これは、システムアーキテクト、アプリケーション設計者、およびプログラマ間のコミュニケーションを単純化するために使用されるパターンにすぎないとも言います。実際には、クライアントサーバーアーキテクチャの特殊なケースであるn層アーキテクチャの特殊なケースです。
トーマス・オーエンス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.