2

最近、私たちの教授は、私たちのプレゼンテーション層は主にメソッド呼び出しで構成されるべきであり、私たちのコードのほとんどはビジネスオブジェクトとデータアクセス層で行われるべきであると述べました。私の質問は、これには通常、ユーザー入力用のコードが含まれていますか?私が言いたいのはこれです。ユーザーがさまざまなものの値を入力できるように、複数のテキストボックスで構成されるフォームがあります。次に、ユーザーがボタンをクリックすると、情報がデータベースに保存されます。

ボタンもメソッドは次のようになります。

//event handler for data input
public static void btnEnterAbRipperXInfo_Click(object sender, EventArgs e)
{
    //convert text box data into int datatype and assign to variable
    inAndouts = int.Parse(txtInAndOuts.Text);
    forwardBicycles = int.Parse(txtForwardBicycles.Text);
    reverseBicycles = int.Parse(txtReverseBicycles.Text);
    crunchyFrog = int.Parse(txtCrunchyFrog.Text);
    crossLegWideLegSitups = int.Parse(txtCrossLegWideLegSitups.Text);
    fiferScissors = int.Parse(txtFiferScissors.Text);
    hipRockNRaise = int.Parse(txtHipRockNRaise.Text);
    pulseUpsHeelsToHeaven = int.Parse(txtPulseUpsHeelsToHeaven.Text);
    vUpRollUpCombos = int.Parse(txtVUpRollUpCombos.Text);
    obliqueVUps = int.Parse(txtObliqueVUps.Text);
    legClimbs = int.Parse(txtLegClimbs.Text);
    masonTwists = int.Parse(txtMasonTwists.Text);            
} 

上記のボタンイベントメソッド内のコードは、実際にはプレゼンテーション層クラスではなく、ビジネスオブジェクトまたはデータアクセスクラスに入れる必要がありますか?

これは宿題ではありません。私はプログラミングクラスの外で息子のために90日間の運動プログラムを作成しています。卒業時のポートフォリオとしても利用できるので、標準的な慣習に従っていることを確認したいと思います。

4

4 に答える 4

1

コードはUIから値を読み取ります。

ビジネスレイヤーはUIにアクセスできないため、このコードはUIレイヤーにのみ存在できます。

于 2012-04-16T17:13:42.120 に答える
1

通常、UIレイヤーまたはプレゼンテーションレイヤーでは、コントロールから値を取得します(現在行っているように)。次に、これらすべての値を使用してビジネスロジックメソッドを呼び出します。何かのようなもの

BAL.ProcessRequest(arg1,arg2,.....);

これらの入力に関連するビジネスルールがある場合は、ビジネスロジックで実行します。たとえば、製品とその注文数量を渡し、ビジネスルールに基づいてそれらの製品の割引を計算する場合は、ビジネスレイヤーで割引計算を実行します。
その後、データベースに送信しようとしているときに、データアクセス層を呼び出します。何かのようなもの:

DAL.SaveData(arg1,arg2,...);

個別のレイヤーを使用する理由は、基本的にアプリケーションを緩く結合するためです。たとえば、基盤となるデータベースを変更する場合は、ビジネスレイヤーやプレゼンテーションレイヤーではなく、データアクセスレイヤーのみを変更する必要があります。
UI /プレゼンテーション層をWebアプリケーションからデスクトップアプリケーションに変更したい場合、変更がプレゼンテーション層でのみ行われる場合を考えてみましょう。ビジネス層とデータアクセス層は変更されません。テキストボックスコントロールをビジネスレイヤーに渡すことを検討している場合は、アプリケーションが結合されます(UI /プレゼンテーションレイヤーはビジネスレイヤーと結合されます)。 これは、 3層アーキテクチャ
について説明している記事です。

于 2012-04-16T17:22:54.053 に答える
0

BOLは、DAL(データアクセス層)に移動する前にサニタイズする必要がある特定のビジネスチェック/ケースを処理します。DALは、BOLから入力を受け取り、それらをデータベースに渡します。

テキストボックスの値にビジネスロジックの種類が必要ない場合は、テキストボックスの値をBOLに渡して、DALに自由に渡すことができます。

コードの外観から、チェック/検証は必要ありません。冗長に見えるかもしれませんが、プロジェクトとの一貫性を保つために、BOLに渡すことができます。本質的に、BOLはこれらの値に基づいて動作しません。これらの値を取得してDALに渡すだけです。

于 2012-04-16T17:10:34.597 に答える
0

いいえ、これはドメインまたはデータ層オブジェクトには適していません。プレゼンテーション要素を直接操作しているため、これはUIレイヤーには問題ありません。

これらの値を引き出して適切なタイプに解析したら、その作業をUIレイヤーから転送することをお勧めします。

さらに、int.TryParse値を変換するためにを使用することを検討する必要があります。これは、テキストボックスの1つに数値以外の値を入力すると、フォームが例外をスローするためです。

于 2012-04-16T17:12:25.550 に答える