• MVC模式小结


    这块内容是软件工程课上学的,当时有一个简单的C++学生信息管理系统课程设计但是没有什么深入的体会.

    到后来继续学习Flask/Python后端开发之后遇到问题才再次入学习思考.

    时至今日,也只有比较粗浅的理解.

    一般我们把一个软件工程拆分成Model,View,Controller三个部分

    • Model负责数据结构的构建,对接数据库
    • View负责用户界面,比如页面和路由
    • Controller负责控制程序流程,响应用户传过来的请求,对Model进行修改

    在当今前后端分离,前端工程化的浪潮下,MVC的功能在前后端也做了拆分.

    就我目前所知来说.

    一般后端仅需处理Model和Controller,也就是处理好数据库和各项服务,提供接口即可.

    View的任务,具体的页面设计和路由是交给前端来实现的.

    但这并不是说前端就不需要了解Model,后端不需要配置路由转发.

    前端也是需要建立对应的Model的,在调用API拿到data后,反序列化回一个对象,并在此基础上进行渲染.只是具体的数据修改通过API交给后端来处理了.

    同样的,后端也需要通过路由把具体的函数和URL地址链接起来.可以理解为,后端不是没有View,而是具体的渲染页面的任务交给了前端,与此同时后端负责提供用于渲染View所需的API.

    前后端的分离,使得项目可以前后端并行进行开发,大大提高了开发效率.

    同时,前后端的分离也使得页面逻辑和业务逻辑得到了拆分,降低了程序的耦合性,提高了项目的稳定性,可维护性.

    而且,把用户设备的运算资源利用了起来,降低了服务端负担.

    MVC的分离则很好地划分了数据,功能和界面,使得结构变得简单直观,各有所长的程序员也能在擅长的部分各司其职.因此,这样的划分也极大的地提高了程序的可扩展性.

    在看了一些项目之后,我发现绝大多数后端程序都是按照MVC架构来开发的.但是每个人的理解都会多多少少有些不同.最后,我找到比较认可的一种是:

    Model:单纯存放数据结构

    Service:提供具体小的功能模块,比如调用Model建立一个对象,再向数据库写入

    Controller:集合Service中各个小的功能模块,组合成一个大的功能,比如注册的Controller就可以拆分成对账号密码的验证,添加用户到数据库,发送激活邮件等多个Service的集合

    与此同时,也需要通过route将Controller和具体的URL绑定起来,提供API

  • 相关阅读:
    spring mvc之DispatcherServlet类分析
    python根据操作系统类型调用特定模块
    C#编写windows服务程序
    写在开始前---多端小系统结构
    写在开始前---web异常处理
    java反射
    写在开始前---简单业务分层
    写在开始前---ajax中的会话过期与重新登录
    一个简易的netty udp服务端
    google的python语言规范
  • 原文地址:https://www.cnblogs.com/rpish/p/13803375.html
Copyright © 2020-2023  润新知