架构那些事~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()
        {
           ...
        }

本文转自博客园张占岭(仓储大叔)的博客,原文链接:架构那些事~MVC系统架构中哪些应该进行抽象,如需转载请自行联系原博主。

目录
相关文章
|
3月前
|
前端开发 Java 开发者
MVC 架构模式技术详解与实践
本文档旨在全面解析软件工程中经典且至关重要的 MVC(Model-View-Controller) 架构模式。内容将深入探讨 MVC 的核心思想、三大组件的职责与交互关系、其优势与劣势,并重点分析其在现代 Web 开发中的具体实现,特别是以 Spring MVC 框架为例,详解其请求处理流程、核心组件及基本开发实践。通过本文档,读者将能够深刻理解 MVC 的设计哲学,并掌握基于该模式进行 Web 应用开发的能力。
509 1
|
存储 前端开发 调度
Flux 与传统的 MVC 架构模式区别
Flux是一种用于构建用户界面的架构模式,与传统的MVC架构不同,它采用单向数据流,通过Dispatcher统一管理数据的分发,Store负责存储数据和业务逻辑,View只负责展示数据,使得应用状态更加可预测和易于维护。
|
Ubuntu Linux
查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
3446 4
JeecgBoot架构图 ● 技术架构图 ● 系统架构图
JeecgBoot架构图 ● 技术架构图 ● 系统架构图
|
存储 边缘计算 Cloud Native
“论模型驱动架构设计方法及其应用”写作框架,软考高级,系统架构设计师
模型驱动架构设计是一种用于应用系统开发的软件设计方法,以模型构造、模型转换和精化为核心,提供了一套软件设计的指导规范。在模型驱动架构环境下,通过创建出机器可读和高度抽象的模型实现对不同问题域的描述,这些模型独立于实现技术,以标准化的方式储存,利用模型转换策略来驱动包括分析、设计和实现等在内的整个软件开发过程。
865 3
|
9月前
|
人工智能 前端开发 Java
DDD四层架构和MVC三层架构的个人理解和学习笔记
领域驱动设计(DDD)是一种以业务为核心的设计方法,与传统MVC架构不同,DDD将业务逻辑拆分为应用层和领域层,更关注业务领域而非数据库设计。其四层架构包括:Interface(接口层)、Application(应用层)、Domain(领域层)和Infrastructure(基础层)。各层职责分明,避免跨层调用,确保业务逻辑清晰。代码实现中,通过DTO、Entity、DO等对象的转换,结合ProtoBuf协议,完成请求与响应的处理流程。为提高复用性,实际项目中可增加Common层存放公共依赖。DDD强调从业务出发设计软件,适应复杂业务场景,是微服务架构的重要设计思想。
|
设计模式 前端开发 数据库
哇塞!Rails 的 MVC 架构也太牛了吧!快来看看这令人惊叹的编程魔法,开启新世界大门!
【8月更文挑战第31天】《Rails中的MVC架构解析》介绍了Ruby on Rails框架核心的MVC设计模式,通过模型(Model)、视图(View)和控制器(Controller)三部分分离应用逻辑,利用Active Record进行数据库操作,ERB模板渲染视图,以及控制器处理用户请求与业务逻辑,使代码更易维护和扩展,提升团队开发效率。
194 0
|
11月前
|
存储 消息中间件 小程序
转转平台IM系统架构设计与实践(一):整体架构设计
本文描述了转转IM为整个平台提供的支撑能力,给出了系统的整体架构设计,分析了系统架构的特性。
307 10
|
存储 前端开发 数据可视化
在实际项目中,如何选择使用 Flux 架构或传统的 MVC 架构
在实际项目中选择使用Flux架构或传统MVC架构时,需考虑项目复杂度、团队熟悉度和性能需求。Flux适合大型、高并发应用,MVC则适用于中小型、逻辑简单的项目。
|
监控 Android开发 iOS开发
深入探索安卓与iOS的系统架构差异:理解两大移动平台的技术根基在移动技术日新月异的今天,安卓和iOS作为市场上最为流行的两个操作系统,各自拥有独特的技术特性和庞大的用户基础。本文将深入探讨这两个平台的系统架构差异,揭示它们如何支撑起各自的生态系统,并影响着全球数亿用户的使用体验。
本文通过对比分析安卓和iOS的系统架构,揭示了这两个平台在设计理念、安全性、用户体验和技术生态上的根本区别。不同于常规的技术综述,本文以深入浅出的方式,带领读者理解这些差异是如何影响应用开发、用户选择和市场趋势的。通过梳理历史脉络和未来展望,本文旨在为开发者、用户以及行业分析师提供有价值的见解,帮助大家更好地把握移动技术发展的脉络。
817 6

热门文章

最新文章