web-dev-qa-db-ja.com

レイヤードアーキテクチャに関する質問

レイヤードアーキテクチャの次の一般的な形式を考えます。

enter image description here

上から2番目のレイヤーについての理解をチェックする必要があります。具体的には「ユーザーインターフェース管理」の意味について理解を深める必要があります。私の理解によると、UI管理はUIの基礎となるコードです。たとえば、それは各ボタンと各UI要素のコードです。したがって、たとえば、ユーザーがこの階層化パターンをアーキテクチャとして使用するシステムからレポートを生成する必要があると考えてみましょう。したがって、ユーザーが[レポートの生成]ボタンを押すと、このボタンの基になるコードは、レポート生成システム機能(第3層に存在)のコードを実行する必要があることを認識します。その後、レポート生成コード(クラスとして実装されていると想定)は、データベースを参照してこのレポートを生成するために必要な情報を取得し、情報が再びUIに到達して表示されるまで、情報が「上方に伝播」します。ユーザー。これでよろしいですか?つまり、これはユーザーインターフェイス管理の意味ですか。そして、私はこのアーキテクチャのメカニズムを理解していますか?

4
AAAA

UI管理は、UIの基礎となるコードです。たとえば、各ボタンと各UI要素のコードです。

ではない正確に。あなたの次のステートメントは実際には本当の意味です:

したがって、ユーザーが[レポートの生成]ボタンを押すと、このボタンの基になるコードは、レポート生成システム機能(第3層に存在)のコードを実行する必要があることを認識します。

このステートメントは、ユーザー管理レイヤーが何であるかの良い例、つまりユースケースです。ボタンの背後にあるコードはそれほど多くありません。これは、UIレイヤーとビジネスレイヤーをつなぐクラスを調整するために必要なすべてのコードの抽象的な概念です。データベースとのやり取りに使用されるコードは別のレイヤーに存在し、一番下のレイヤーで表されます。

基本的に、制御の流れは、ユーザーインターフェイスからユースケースに移ります。ユースケースからは「ビジネス層」に行きます。他のアーキテクチャまたは設計哲学は、これを「ドメイン層」にすることができます。ビジネスレイヤーから、データベースに接続するシステムサポートレイヤーとやり取りします。多くの場合、これはORM(Object Relational Mapper)を使用して行われます。

ほぼ正しいと思います。ユーザー管理レイヤーが具体的なユーザーインタラクション(ボタンのクリック)を取り、ビジネスプロセスの実行と調整(レポートの実行)を行う責任があると想定するのは正しいことです。

1
Greg Burghardt