共有フィールドと関数を持つ BaseDataClass があります
Protected Shared dbase as SqlDatabase
Protected Shared dbCommand as DBCommand
...
//also have a sync object used by the derived classes for Synclock'ing
Protected Shared ReadOnly syncObj As Object = New Object()
Protected Shared Sub Init() //initializes fields, sets connections
Protected Shared Sub CleanAll() //closes connections, disposes, etc.
この基本クラスから派生したいくつかのクラスがあります。Shared
派生クラスには、インスタンス化なしで BLL から直接呼び出すことができるすべての関数があります。
これらの派生クラスの関数は、ベースの Init() を呼び出し、特定のストアド プロシージャを呼び出し、ベースの CleanAll() を呼び出してから、結果を返します。
したがって、それぞれ 10 個の関数を持つ 5 つの派生クラスがあり、合計で 50 個の関数呼び出しが可能である場合、それらはすべてShared
であるため、CLR は一度に 1 つしか呼び出しませんよね? Shared
すべての呼び出しはキューに入れられ、各関数が完了するまで待機します。
Shared
DAL に関数を持ち、基本クラスの関数を保持するより良い設計はあり ますか? または、基本クラスがあるので、DAL 内のインスタンス メソッドに移行する方がよいでしょうか?