1

こんにちは、私は一学期の間 C++ で OOP をプログラミングしており、C# を始めたばかりです。レイヤーを互いに分離する方法と、何がどこで何をするのか、まだ完全には理解していません。私が理解していることから、これらの層があります:

ストレージ -> データ アクセス -> ビジネス ロジック -> コマンド プロセッサ -> ユーザー インターフェイス

今、私は各層の責任が何であるかを正確に理解できないようです..

データ アクセスには、追加、更新、削除、クエリなどのメソッドのみが含まれていることを理解しています。データ アクセスは、オブジェクトをパラメーターとして受け取り、それを処理するだけで、何を挿入するかは気にしません。ビジネス ロジックは、コマンド プロセッサがユーザー インターフェイスからデータを取得し、入力検証を行ったコマンド プロセッサから送信されるデータからオブジェクトを作成しますか?

また、クエリコマンドはデータを送り返す必要があるため、挿入コマンドとは大きく異なる方法など、さまざまなコマンドをどのように送受信しますか..

おそらくおわかりのように、私はかなり道に迷っており、このテーマに関する適切なチュートリアルを見つけるのに苦労しています.

ありがとう!

編集。

データ アクセス レイヤーのクエリ メソッドから始めようとしています。親タイプの汎用リストに格納する 3 つの子オブジェクトがあります。

さまざまなクエリ オプションがあります。そのうちの 1 つはタイプです。したがって、親リストを検索し、指定されたタイプの場合は各オブジェクトのデータを返す必要があります。親オブジェクトには上書きされた ToString() と、親の ToString() を呼び出してオブジェクトのすべてのデータを 1 つの文字列に取得する子があります。私はここでビジネスロジックの仕事をしていますか? また、自分のタイプに一致するオブジェクトのリストを取得し、ToString() を呼び出す foreach でそれをスローして反復しようとすると、親の ToString() だけが呼び出されます。

public string Lookup(Types type)
{
List<Parents> search = new List<Parent>();


switch (type)
{
case Types.TypeOne:
{
search = ParentDataBase.FindAll( delegate(Child1 findChild) { 
return findChild is ChildOne; } );

}
break;
case Types.TypeTwo:
{
search = ParentDataBase.FindAll( delegate(Parents findChild) { 
return findChild is ChildTwo; } );
}
break;
case Types.TypeThree:
{
search = ParentDataBase.FindAll( delegate(Parent findChild) { 
return findChild is ChildThree; } );
}
break;
}
string results = "";

foreach (Parent x in search)
{
results += t.ToString();
}
return results;
}
4

1 に答える 1

4

質問に示されている矢印は紛らわしいので、議論中に変更します。

そのため、リンクを 2 つだけ配置させてください。言及されている場合は、 CRUDMVCアーキテクチャを検索してみてください。

これを 1 つずつ実行してみましょう。

ストレージ -> データアクセス

これは通常ORMによって処理されます。ORM はデータベース アクセスを処理します。

作成した ORM とカスタム (モデル) オブジェクトにより、抽象化されたデータ アクセスが可能になります。これは次のようになります。

ORM は、データベースを使用可能にするために、データベースとの間でデータを変換します。ORM はCRUD操作を処理できるため、クエリ、更新、および挿入がコードの他の部分に存在しません。

ビジネスの論理

ビジネス ロジックは、データへのアクセス、変更、および保存によってデータを処理します。

ビジネス ロジックは、データへのアクセスと保存を実行するためにモデルにアクセスできます。

変更部分は、ビジネス ロジックで実装されます。

ビジネス ロジックは、小規模、大規模、またはビジネス ランナーの他の部分の組み合わせにすることができます。

グラフは次のようになります。

データベース <- ORM -> モデル <- ビジネス ロジック

コマンド プロセッサ

コマンド プロセッサは、ビジネス ロジックの一部を実行し、システム全体の一部にパッチを適用します。MVCではコントローラーと呼ばれることもあります。

データベース <- ORM -> モデル <- ビジネス ロジック <- コマンド プロセッサ

ユーザーインターフェース

ユーザー インターフェイス (UI) は、データ表現とユーザー入力の 2 つの部分に分けることができます。

データ表現は MCV ではビューと呼ばれ、データを取得してユーザーが読み取れるようにする役割を果たします。

ユーザー入力は、コマンド プロセッサの一部をトリガーします。

全体:

                                                                ,-> View
Database <- ORM -> Models <- Business Logic <- Command Processor
                                                                `<- User Input
于 2012-09-20T03:57:30.013 に答える