2012-04-01 4 views
0

質問が十分明確であるかどうかわかりませんが、私の問題です。データベースコードはクラス/アプリケーションのどこに/どのように入れるべきですか?

私はVB.Netで小さなアプリケーションを作成しています。これはWebサイトから情報を取得してユーザーに提示します。基本的に、私はのGet(URL)、Webページを取得し、それを読み、様々なプロパティ(読み取り専用)オブジェクトの移入メソッドを持つクラスを、書かれています。 このクラスは正常に動作します。

今、私は私がDBからデータを読み取ることができるようにクラスが知ら URLのために呼び出された場合、データベース(私は今のアクセスを使用しています)にその情報を保存したいと思います。私はOOPにかなり新しいとデスクトップアプリケーション(ただしDBを設計する上で何の問題)でのDBの使用を完全に新たなんだと、私は続行する方法について確認していない:

  • 私は私の中でデータベースコードを置くべきです既存のクラス?
  • 既存のクラスに基づいて拡張クラスを作成し、DBコードを追加する必要がありますか?
  • DBデータ用に全く異なるクラスを作成し、アプリケーション内でスイッチ論理(DBまたはWebから読み取る)を配置する必要がありますか?
  • ...

私は私の質問は、ほとんどのあなたの経験に愚かに聞こえるかもしれないことを認識し、私はこれに新たなんだと私は本当に物事に正しい方法を行う方法を学びたい初めて!!!

ありがとうございます!

答えて

1

これは私がどうなるのかです:

  • は、データベース・コードのための新しいクラスを作成し、それを実装していることをそれのため インターフェイスを作成します。
  • 次に、Webデータを取得するコードを持つ別のクラスを作成します。同じインターフェイスを実装するようにします。

ここで、コントローラクラスからのデータアクセスを行うために、どちらのクラスにも代入することができます。

また、データベースとデータのアクセスは、自分のクラスにある私のサービスやUIクラスとは別のプロジェクトに置くのが普通ですが、それはあなたの状況には過剰な可能性があります。

詳細については、n層アプリケーションの設計を参照してください。ここで話している層はデータアクセスです。

http://en.wikipedia.org/wiki/Data_access_layer

+0

こんにちは、私はあなたのアイデアが好き、しかし、私はそれを完全に理解していることはよく分からない:私は間違っていない場合、私は1つのインターフェイス(私のオブジェクトを記述する)と、3つのクラスで終わるだろう1つはWebからデータを読み込み、もう1つはdbからデータを読み込み、最後は制御クラスです。この最後のクラスは、データソース(DBまたはWeb)の選択を担当するアプリケーションからアクセスするもので、ダウンロードしたデータのDBへの保存操作をトリガーします。 – Federico

+0

あなたはそれを持っています!これは非常に広く使用されているパターンであり、IMOはこの状況に最適です。明らかに、コントローラ(サービス)クラスはインターフェイスを実装していないが、2つのデータアクセスクラスがインターフェイスを実装しています。 – msigman

関連する問題