当为业务逻辑层(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;
}
这样不需要在具体业务类中生成新对象,直接使用基类的方法就可以了,结构清晰,操作统一性好。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示