- - PR -
DBアクセスにおいて、抽象クラス作成の有用性について
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-06-22 12:06
お世話になります。
VB.NET ADO.NET SQLServer2000 上記環境にて開発しているのですが、少々悩ましいところがあるので相談させてください。 現状、データベースアクセスには特に抽象クラスを用意していません。 が、やはり抽象クラスを作成した方が良いのでしょうか? 昔JAVAで開発した時は、抽象クラスを作成したのですが、 VB.NET+ADO.NETの開発だとADO.NETが用意されているので必要ないのでしょうか? 好みだと言われればそれまでの議題なのですが^^; 出来る限り、プログラム時にルールを持たせたいと考えています。 | ||||||||
|
投稿日時: 2004-06-22 12:40
「抽象」というのは、キーワードabstract(VB.NETではMustInherit)の「抽象」のことですか?
それとも抽象的な「データを格納するもの(データベース)」を表現するクラスということでしょうか。 (おそらく後者だと思いますが) | ||||||||
|
投稿日時: 2004-06-22 13:34
説明不足すいません。
「抽象」というのは、キーワードabstractのことです。 DataSet、…をメンバ変数に持ち、 SqlConnection、SqlDataAdapter、…、などをメソッドに持つabstractと考えてください。 | ||||||||
|
投稿日時: 2004-06-22 18:41
うーん? そのクラスがどのような仕事をするのか分かりませんが、abstractなものを作る必要があるんですか? もちろん、そのクラスが抽象的な何かを表すのであればabstractで良いんでしょうけど。 具象クラスを作るのでは済まない理由はなんでしょう。 | ||||||||
|
投稿日時: 2004-06-22 19:52
リオッタさん、こんばんは。
# 取り敢えず、その抽象クラスがどのように使われるのかを、教えて欲しかったりします...。
「昔JAVAで開発した時」は何故、そういうクラスを作成したのか、その理由を考えれば、.net での開発に於いても有効かどうかが見えてくるんじゃないでしょうか。 その結果、本当に「好み」の問題であると考えられるなら、ややこしくなるだけなので止しといた方がいいと思います。 | ||||||||
|
投稿日時: 2004-06-23 00:09
お世話になっています。
抽象クラスを継承したDBアクセスクラスを生成し、トランザクション管理しようと考えていました。 そのクラスを持ちまわって、最初と最後のデータのタイムスタンプを比較し、 共有的ロックを自前で・・・とか色々考えていたのですが、 ADO.NETであればあまりそこまで考えなくてもいいのですよね^^; まだまだ勉強不足で整理できていない状況です^^; | ||||||||
|
投稿日時: 2004-06-23 10:49
個人的には、↑を行うクラスとデータクラスは分離して実装します。 ロジックを担当するクラスに、処理対象のデータをメンバとして持たせることはあまりしません。
比較的単純なテーブル構成で、SqlDataAdapter などが使える場合は考えなくても済みます。 ですが、SqlCommand や SqlDataReader やらを手動で制御する場合は自分で考えることになります。 _________________ // 渋木宏明 (Hiroaki SHIBUKI) // http://hidori.jp/ // Microsoft MVP for Visual C# // // @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/ | ||||||||
|
投稿日時: 2004-06-23 11:08
お世話になります。
単純なテーブル構成の為、 今回はADO.NETで用意してあるオブジェクトで解決したいと思います。 今後、複雑な処理になるようなことがあった場合、 渋木宏明(ひどり)さんのアドバイスを活用させていただきます。 お忙しいなか、返答していただいた方々ありがとうございました。 |