4

私の会社では、データベースを使用してアプリケーションを作成するために、Bll、Dal、およびモデル レイヤーを使用する必要があります。

私は学校で、すべてのデータベース テーブルをモデル内のオブジェクトにする必要があることを学びました。そのため、データベースのモデル全体を作成します。また、すべてのテーブル (またはモデル オブジェクト) に対して、DAL に作成された DAO が必要であることも学びました。だから私はこれをします。

今、私は BLL クラスにこだわっています。DAO/ModelObject ごとに BLLclass を作成することも、(ロジック) DAO を組み合わせた BLLclass を作成することもできます... または、すべてを管理する Bllclass を 1 つだけ作成することもできます。(この最後のものは、それが最善の方法ではないと確信しています..)

この Bll の「問題」を処理するためのベスト プラクティスは何ですか?

そして2つ目の質問です。bll が責任を負わない他のテーブルから tablecontent を必要としている場合、コンテンツを取得する最良の方法は何ですか? 担当の BLL に問い合わせるか、DAO に直接アクセスしますか?

過去 2 か月間、これらの質問に苦しんでいますが、どのように対処するのが最善の方法なのかわかりません。

4

2 に答える 2

5

アプリを機能させるために必要なものから始めるべきです。

例: 「ユーザー ログイン用の Web UI が必要です」

  1. そのため、モデルを使用してニックネームとパスをチェックするコントローラーが必要です
  2. 次に、ニックネームをチェックしてパスするためのロジックを実行する bll オブジェクトが必要です
  3. 次に、データベースにアクセスしてユーザー情報を取得するためのdalオブジェクトが必要です

そのように考え始めなければ (上から下へのアプローチ)、決して使用されることのない多くのコードを作成することになります。

注: dal が orm マッピングであるかどうかは逸話です。また、モデルが bsl を使用する場合、または bsl がモデルを使用する場合。私見では。

于 2010-03-11T05:21:03.087 に答える
-5

私は学校で、すべてのデータベーステーブルが私のモデルのオブジェクトであるべきだと学びました。

オブジェクト指向を学ばなかったのですか?継承?複数のオブジェクト タイプを 1 つのテーブルにマッピングしますか? 単純な「ばかげた」すべてのテーブルだけが1つのオブジェクトですか? オブジェクトをマッピングするより論理的な方法があります。すべてに独自のさまざまな長所と短所があります (つまり、状況に応じて、各オブジェクトのフィールド数の中から選択します)。

また、すべてのテーブル (またはモデル オブジェクト) に対して、DAL に作成された DAO が必要であることも学びました。

学校に行って、お金を返してください - 彼らは馬鹿でした。生成された DAO は、そもそも悪いものです。オブジェクトごとに 1 つあるとさらに悪化します。CONFIGURATION 切り札 CODE - 汎用 DAO は、構成に応じて x 個の異なるオブジェクトを処理できます。テストしてロードするコードが大幅に減ります。これは、適切なフレームワークが行う方法です (Hibernate/NHibernate など)。操作中に公開し、無制限の数のオブジェクトを処理する約半ダースのメソッドを持つ DAL を簡単に作成できます。最初に、どのオブジェクトをどのように処理する必要があるかをすべての DAL に伝えて、適切な SQL などを生成できるようにします。

この Bll の「問題」を処理するためのベスト プラクティスは何ですか?

学校に戻り、基本を学びます。O/R マッパーについて調べてください。Hibernate / NHibernate (使用する言語に名前を付ける必要はありません)、Toplink など。

bll が責任を負わない他のテーブルから tablecontent を必要としている場合、コンテンツを取得する最良の方法は何ですか? 担当の BLL に問い合わせるか、DAO に直接アクセスしますか?

アーキテクチャに依存します。一般に、ビジネス オブジェクトはファクトリから取得され、ファクトリとのみ通信する必要があります。その後、ファクトリは DAL を処理します - キャッシングなどの非常に興味深いことを実行した後と実行する前に。

Hibernate / NHibernate を読んでください。

良い本は、"Scott Ambler の" 古い "Building Object Applications that work" です。

于 2010-03-04T09:32:37.127 に答える