当为业务逻辑层(BLL,Service)提供基类之后,程序变得了更加面向对象了
/// <summary>
/// 业务层抽象基类
/// </summary>
public abstract class ServiceBase
{
/// <summary>
/// 通用消息
/// </summary>
protected VMessage VMessage { get; set; }
/// <summary>
/// 数据层统一操作对象实例
/// 避免派生类直接new对象
/// </summary>
/// <typeparam name="TEntity"></typeparam>
/// <returns></returns>
protected IRepository<TEntity> LoadRepository<TEntity>() where TEntity : class,Entity.IEntity
{
return new Repository<TEntity>();
}
}
子类在完成一个业务功能时,就变成了这样:
public Entity.VMessage AddCommon_BasePropValue(Common_BasePropValue entity)
{
VMessage = new Entity.VMessage();
try
{
if (Base.LoadRepository<Common_BasePropValue>().GetModel().Where(i => i.Name == entity.Name).Count() > 0)
{
VMessage.IsComplete = false;
VMessage.AddItem("名称重复");
}
else
{
base.LoadRepository<Common_BasePropValue>().Insert(entity);
VMessage.IsComplete = true;
}
}
catch (Exception ex)
{
VMessage.AddItem(ex.Message);
}
return VMessage;
}
这样不需要在具体业务类中生成新对象,直接使用基类的方法就可以了,结构清晰,操作统一性好。