三层架构和MVC

157 阅读2分钟

theme: juejin

前言

  1. 何为架构 架构大致可以分为系统架构和应用架构,系统架构也可称为网络架构,应用架构也可称为代码架构。

  2. 为何架构 业务简单时,所有服务都部署在同一台服务器上,开发和维护都比较方便,而随着业务复杂度越来越高,开发和维护成本都呈线性增长,为了降低系统各模块的耦合度,提高业务的稳定性和灵活性,我们就需要考虑做系统架构。下面简单讨论三层架构和MVC。

三层架构

  1. 什么是三层架构

    三层架构主要是指服务端应用架构,其包含表示层,逻辑层,数据层。每一层都可以独立运行,独立开发,独立部署,因此具备很强的扩展性。

  2. 详细介绍

    2.1 表示层

    表示层位于最上层,与用户直接交互,收集用户输入信息并展示系统输出信息,可以以web浏览器,桌面应用程序或者图像用户界面(GUI)形式运行。

    2.2 逻辑层

    逻辑层连接表示层和数据层,是核心。通常逻辑层处理表示层输入,操作数据层并返回结果给表示层。 可以使用各种编程语言来开发逻辑层,如java,go,php,python等,通过api接口和数据层交互。

    2.3 数据层

    数据层通常要操作数据库,如mysql,oracle等,也称为持久层。

  3. 优势

    • 提升开发效率: 由于每一层可以独立开发,可以交由不同团队开发
    • 弹性伸缩:每一层按需部署,互不影响
    • 提高稳定性:高内聚,低耦合,其中一层挂了其他层不受影响
    • 安全性:逻辑层可对表示层数据过滤,提高安全性

MVC

  1. 什么是MVC

    MVC即模型,视图和控制器,有了上面三层架构理解起来应该就容易多了。

  2. 详细介绍

    2.1 视图

    即用户界面,和用户直接交互,通常是浏览器html网页等

    2.2 控制器

    接收视图层的输入,调用模型处理请求,并返回数据给视图层

    2.3 模型

    处理数据对象,可以包含业务逻辑,数据改变会通知视图层更新。

  3. 优势

    • 低耦合:视图和模型分离
    • 提高代码复用:一个模型可以对接多个视图
    • 模块化:代码逻辑分割,利于开发维护

对比

三层架构是对整个应用的划分,而MVC主要是对应用交互界面的可管理分层,它们主要都是解决“高内聚,低耦合”的问题。