同じデータを参照するのに何度もDBにアクセスするのがいやなので
クラス(xxx.cls)化してデータを保存するという、仕様書があがってきました。
(DBの更新もクラスでするそうです)
ですが、いままでクラスを使ったことがありません。
クラスというものの概念は大体理解しているつもりですが、
いざコーディングになると、何をどうすればいいか全然わかりません。
サンプルになるコードが乗ってるかなと、HPを検索してみましたが
なかなか見つかりません。もしご存知でしたら教えてください。
よろしくお願いいたします。
テーブルをクラスにするかレコードをクラスにするかによって処理はかわりますが
両方ならばまずレコードをクラスにします。
たとえばclsRecordというクラスを作成します。
これには外部に公開する部分と隠蔽する部分を考えなければなりません。
まずモジュール内でPrivateな構造体を用意します
Private Type RECORD_DATA
.Name As String
.Age As Integar
End Type
これで構造体の宣言ができました
さらに構造体のインスタンスもモジュール内Privateで宣言します
Private udtUserData As RECORD_DATA
これがこのクラスの隠蔽部分です
この構造体にアクセスするためのインターフェースとして
プロパティを設定すればレコードのクラスが完成します。
次にテーブルクラスを同じように公開する部分と隠蔽する部分の処理を実装し
作成します。
例えばデータベースのファイルパスプロパティやテーブル名プロパティなどです。
こうして作成したテーブルクラスにレコードクラスのインスタンスを
コレクションにして持たせ、それに対するインターフェースを付けることによって
クラスが完成します。
DBの更新もクラスで行うということなのですが、これはそれぞれのクラスに
DBを操作するメソッドを実装することによって可能になります。
こうすればデータアクセスオブジェクトを外部から意識せず操作することが可能に
なります。
ようするにDBを操作するコードをメソッドの中に隠蔽してしまうというわけです。
クラスの利点は、外部からいじられたくない部分をクラス内に隠蔽することによって、そのクラスを使う側からは簡単に目的の処理を実行できることにあります。
そのほかにも、こうしてカプセル化しておけば再利用が容易であるという利点もあります。
これがオブジェクト指向という考え方です。
これらの実際のコーディングに関しては、VBを使ったオブジェクト指向に関する書籍などを参考にすることをおすすめします。
クラスの概念は理解している、ということなのであまり必要ないかもしれませんが
下記のホームページでクラスの作り方が分かりやすく説明されています。
http://homepage1.nifty.com/CavalierLab/lab/vb/clsmdl/
ツイート | ![]() |