У меня есть 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?