架构那些事~MVC系统架构中哪些应该进行抽象
今天主要想说一个MVC+LinqTOSql的系统架构中哪些东西可以,也应该进行抽象.
MVC的WEB层应该进行抽象的是:
统一的Controller,将其它controller公有的属性和方法进行一个抽象,方便以后扩展和维护.
代码可能是这样:
/// <summary>
/// Controller基类
/// </summary>
public abstract class ControllerBase : Controller
{
/// <summary>
/// 通用信息(一般由service层返回的)
/// </summary>
protected Entity.VMessage VMessage { get; set; }
}
Service层应该进行抽象的是:
统一的业务逻辑对象,所有Service类都继承自它,它可能有一个数据抽象方法LoadRepository<T>(),它主要负责所有最基础数据操作的调用,哪最简单的增,
删,改,查,在业务逻辑层的具体Service类中在对具体操作进行组合与封装,完成一个完善的,最直接的对WEB层的数据操作接口.
代码可能是这样:
/// <summary>
/// 业务层抽象基类
/// </summary>
public abstract class ServiceBase
{
/// <summary>
/// 通用消息
/// </summary>
protected VMessage VMessage { get; set; }
/// <summary>
/// 数据层统一(基础)操作对象
/// </summary>
/// <typeparam name="TEntity"></typeparam>
/// <returns></returns>
protected IRepository<TEntity> LoadRepository<TEntity>() where TEntity : class,Entity.IEntity
{
return new Repository<TEntity>();
}
Data层对数据上下文操作的封装,将DBContext的基础操作进行重新封装,对DATA层其它子类只公开封装后的方法和属性,也是方便维护和扩展的.
代码可能是这样:
/// <summary>
/// 数据操作基类
/// </summary>
public abstract class TestRepositoryBase
{
/// <summary>
/// 数据库基类
/// </summary>
protected LinqTESTDataContext db = ...
/// <summary>
/// 统一提交动作
/// </summary>
protected virtual void SubmitChanges()
{
...
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示