BLLManager抽象基类实现了IBLLManager接口定义的所有方法,通过与IDataManager接口与数据层交互,并且处理异常及相关返回类型操作,并且附加方法都可以使用override重写,以实现不同项目的不同需求,做到最大的公用与通用
对于是否应该存在逻辑层的讨论,很多人也认为可以不需要逻辑层,DAL层直接与UI层进行交互也很好,这里我不评价孰好孰坏,只阐述我个人意见,本人认为还是存在该层次为好,一方面可以处理数据层返回的数据进行整合,另一方面也可以对UI层进行相关验证等进行操作,还可以应对越来越复杂的业务逻辑,更多帮助信息请参阅
DevNet在线帮助文档
这里列举该抽象基类的类定义和几个属性
类定义
C# Code复制内容到剪贴板
-
-
-
-
-
- public abstract class BLLManager<T, TCondition> : IBLLManager<T,TCondition>
下面是IDataManager的属性,该属性用于注入本业务逻辑层的数据交互接口对象
C# Code复制内容到剪贴板
- private IDataManager<T,TCondition> _dataManager;
-
-
-
-
- protected IDataManager<T, TCondition> TDALManager
- {
- get
- {
- return _dataManager;
- }
- set
- {
- this._dataManager = value;
- }
- }
这里再列举一个该抽象基类的实现方法
C# Code复制内容到剪贴板
-
-
-
-
-
-
- public virtual T GetSingle(string[] fieldNames, object[] fieldValues)
- {
-
- ResetError();
- try
- {
- return TDALManager.GetSingle(fieldNames, fieldValues);
- }
- catch (DevNetException ex)
- {
- ThrowDevNetException(ex);
- }
- catch (Exception ex)
- {
- ThrowException(ex);
- }
- return null;
- }
再看一下ResetError和异常处理的方法定义
C# Code复制内容到剪贴板
-
-
-
- protected void ResetError()
-
-
-
-
-
-
- protected virtual void WriteExceptionMsg(string msg, Exception ex)
-
-
-
-
-
- protected virtual void ThrowDevNetException(DevNetException ex)
-
-
-
-
-
- protected virtual void ThrowException(Exception ex)
其中异常处理的方法都使用虚方法,子类都可以重写,以实现自己项目业务逻辑需求