MVC系统架构中应该进行抽象的几个东西
2012-01-09 23:39
387 查看
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()
{
...
}
统一的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()
{
...
}
相关文章推荐
- 架构那些事~MVC系统架构中哪些应该进行抽象
- 信息发布系统 Jquery+MVC架构开发(2) 在EA下进行数据库设计
- Web MVC 架构中,一个 C(controller)至少应该提供几个 A(Action)?
- [置顶]信息发布系统 Jquery+MVC架构开发(2) 在EA下进行数据库设计
- [置顶]信息发布系统 Jquery+MVC架构开发(2) 在EA下进行数据库设计
- 信息发布系统 Jquery+MVC架构开发(2) 在EA下进行数据库设计
- 架构,改善程序复用性的设计~第六讲 我的系统结构~将所有可以抽象的项目进行抽象(大结局)
- [置顶]信息发布系统 Jquery+MVC架构开发(7) Controller层
- 双十一秒杀系统架构设计,有这几个关键点!
- 在软件开发的早期阶段为什么要进行可行性研究?应该从哪些方面研究目标系统的可行性?
- 明源售楼系统技术解析—MVC架构
- 几个有趣的系统架构
- 用WM framework进行MVC团队组合模式的系统开发
- Flume(NG)架构设计要点及配置实践 Flume NG是一个分布式、可靠、可用的系统,它能够将不同数据源的海量日志数据进行高效收集
- 分享基于EF+MVC+Bootstrap的通用后台管理系统及架构
- [置顶]信息发布系统 Jquery+MVC架构开发(1) 需求分析和架构构思
- [置顶]信息发布系统 Jquery+MVC架构开发(3)解决方案创建)
- [置顶]信息发布系统 Jquery+MVC架构开发(7) Controller层
- 大型商贸系统(进货管理)技术解析(一)MVC架构搭建
- 一个软件系统的架构到底应该包含些什么?