zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Android 解决小米手机Android Studio安装app 报错的问题It is possible that this issue is resolved by uninstalling an existi
    Android Unresolved Dependencies
    Android studio 自定义打包apk名
    Android Fragment与Activity交互的几种方式
    魅族和三星Galaxy 5.0webView 问题Android Crash Report
    Android几种常见的多渠道(批量)打包方式介绍
    Android批量打包 如何一秒内打完几百个apk渠道包
    上周热点回顾(9.30-10.6)团队
    上周热点回顾(9.23-9.29)团队
    上周热点回顾(9.16-9.22)团队
  • 原文地址:https://www.cnblogs.com/rpish/p/13803375.html
Copyright © 2011-2022 走看看