У меня 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(), а затем возвращают результаты.
Итак, если у меня есть 5 производных классов с 10 функциями каждый, всего 50 возможных вызовов функций, так как они все Shared
, CLR только звонит по одному, правильно? Все вызовы поставлены в очередь, чтобы дождаться завершения каждой функции Shared
.
Есть ли лучший дизайн с функцией Shared
в вашем DAL и все еще есть функции базового класса? Или, поскольку у меня есть базовый класс, лучше ли двигаться к методам экземпляра в DAL?