4

これは重複した質問かもしれません。しかし、私のような初心者が理解できる正しい説明は見つかりませんでした。

私の質問は、「ビジネス ロジック レイヤー内でできるすべてのこと」です。私は 3 層アーキテクチャ プロジェクトを行ってきました。ただし、BLL は UI とデータ層の間で値を渡すためだけに使用しました。

しかし、私がインタビューに出席するときはいつでも、彼らはあなたがBLLの中で何をしているのか私に尋ねます.
BLL の正しい使い方を理解するのを手伝ってください。
可能であれば、サンプルコードを少し提供してください。

4

3 に答える 3

10

この質問は、stackoverflow が好む形式ではないため、削除される可能性があります。

BLL は、特定の数式の実行方法やワークフローの実行方法などのビジネス ロジックを処理します。通常、企業が実装したいルールが含まれます。

通常、データ レイヤーは、データベース、ファイル、またはその他のデータ ソースからデータを取得するだけで、それ以上の変更は行いません。通常、データをある種のビジネス関連のクラス/オブジェクトにロードするのはビジネス層です。BLL は、UI レイヤーに渡す前に、データ レイヤーからのデータを変更することもできます。UI レイヤーは単純な検証のみを行い、BLL から取得したデータをレンダリングします。

たとえば。

データレイヤーで

あなたは機能を持つことができます

public DataSet GetAllAccounts()
{
 DataSet ds;
 //Some sql code to read out the sql data using datareader and dataadapter;
 return ds;
}

そして、ビジネス層であなたが持つことができる

public List<Account> GetAllAccounts()
{
 DataSet ds = DataLayerClass.GetAllAccounts();
 return (from Tab1 in ds.Tables[0] select new Account(){AcctNum =Tab1.AcctNum, Name =Tab1.Name}).ToList();
}

ご覧のとおり、Account はビジネス固有のオブジェクトですが、DataSet はデータベースに関連するものであり、ビジネスやビジネス ルールには関係ありません。

于 2013-05-23T04:29:21.670 に答える
2

すべてのビジネスロジック、つまりデータ処理が個別に行われている場合、あるデータベースから別のデータベースに安全に切り替えることができます。

また、同じコードを使用して複数のデータベース (SQL Server、MySql、Access、テキスト ファイル) をサポートすることもできます。

于 2013-05-23T05:06:09.967 に答える
1

まず、オブジェクトをデータとビジネスの 2 つの別々のレイヤーに分離する理由を知っておく必要があります。オブジェクト指向では、データとアクションが同じクラスにあるのは、エンタープライズ アプリを作成している場合、一般的にデータの変更はまれですが、ビジネスは変更しようとしているので、このパターンは特定の部分を変更するのに役立ちます。

3 層パターンを使用して質問に答える主な理由の 1 つを理解している場合、実際のビジネスにあるすべてのロジックが同じ名前でそこにある可能性があります。たとえば、金融プロジェクトでは、RegisterVoucher はバウチャーを登録する方法です。登録する前に確認する必要があるすべての検証に注意してください。

于 2013-05-23T04:29:58.703 に答える