【发布时间】:2011-02-11 06:32:50
【问题描述】:
我有一个带有共享字段和函数的 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 函数完成。
有没有更好的设计让你的 DAL 中有 Shared 函数并且仍然有基类函数?或者,既然我有一个基类,那么在 DAL 中转向实例方法会更好吗?
【问题讨论】:
标签: vb.net data-access-layer shared daab base-class