■No13159に返信(なおこ(・∀・)さんの記事) > ●BaseTableClass > Public MustOverride GetDeleteSQL(keyvalue As String) As String > としておいて、 > > ●各TableClass > Public Overrides GetDeleteSQL(keyvalue As String) As String > …Delete文を作成する実装
これ自体はまったく持って問題ないと思うのです。
ただ、汎用的なDeleteとして、 . Public Sub DoDeletion(ByVal id As Integer) . _sqlCommand.CommandText = (" Delete From " & TableName _ . & " Where " & PrimariKey & " = " & "@" & PrimariKey )
. _sqlCommand.Parameters.Clear() . _sqlCommand.Parameters.Add("@" & PrimariKey, id) . End Sub を親のクラスに実装したかったのです。 やはり、このメソッドを各種TableClassに実装すべきでしょうか...
一例ではありますが、この、 Public Overridable Sub DoDeletion(ByVal id As Integer) を親のクラスで記述するか、しないかで子クラスでの記述量が、 変わってくるという意味で「実装すべきでしょうか」といいたかったのです。 できる限り抽象化し、親のクラスで実装したいという意味です。
分類:[.NET]
2005/10/07(Fri) 13:29:26 編集(投稿者)
こんにちは。キムラと申します。
早速本題なのですが、
たとえば、
各種TableClassを実装するために、
まず、MustInheritなTableBaseClassを書きます。
TableBaseClassには、Delete文を実行する汎用的なメソッドを実装します。
Delete文を実行するためには、PrimaryKeyが必要です。
しかし、TableBaseClassとしてはPrimaryKeyをわからないので、
MustOverrideと宣言して、Delete文を実装し、
かつ、子クラスでの実装もれをなくしたい。
しかし、各種TableClassからすればPrimariKeyは、
インスタンスに依存しないクラス固有(テーブル固有)なものですし、
Sharedと宣言し、Newしなくても読み出したい。
これを実装したいと思ってること自体おかしいのでしょうか?
皆様の知恵や指摘をお借りしたいです。
よろしくお願いします。
キムラ