zoukankan      html  css  js  c++  java
  • MVC和三层架构

    MVC和三层架构

    标签(空格分隔): 架构 设计模式


    三层架构

    三层架构指的是: 视图层(View),服务层(Service)和持久层(DAO). 他们分别负责不同的功能.

    单纯就是指后台的设计架构

    这种架构模式是从微软来的, 微软提倡这种架构模式并且在 零几年的时候给了一个宠物商店的Demo 用于示范(有一点记不清了.).

    1. View层: 用于接收用户提交请求的代码.
    2. Service层: 系统的业务逻辑层主要在这里完成.
    3. DAO层: 直接操作数据库的代码.
    • 为了更好的降低各层次之间的耦合度, 在三层架构程序设计中, 采用面向抽象编程(接口编程). 即上层对下层的调用是通过接口实现的. 而下层对上层的真正服务提供者, 是下层接口的实现类. 服务标准(接口)是相同的, 服务提供者(实现类)可以替换, 这就实现了层间解耦合.

    MVC模式

    MVC指的是: Model(模型), View(视图)和Controller(控制器).

    包括前台和后台, 这里省略了Service层. 其实自己写的话一般情况下经常把Service层省略掉, 设计好Controller和Model(控制器和数据库),然后开始设计前端交互.

    1. View:视图 最顶层, 为用户提供使用界面, 和用户直接进行交互, 是程序的外壳.
    2. Model:数据层 最底层, 是核心的数据层, 程序需要操作的数据或信息.
    3. Controller: 控制层 负责根据用户从View层输入的指令, 选取"数据层"中的数据, 然后对其进行相应的操作, 产生最终的结果.

    • MVC是一种软件设计典范, 用于中业务逻辑, 数据,页面实现分离的方法组织代码, 将业务逻辑整合到一个部件里面, 在改进和个性化定制界面以及用户交互的同时不需要重写编写业务逻辑, 实现业务逻辑和前端界面的分离. MVC被独特的发展起来用于映射传统的输入,处理和输出功能在一个逻辑的图形化用户界面的结构.
    • MVC最开始是用于桌面程序当中, M指的是业务模型, V指的是用户界面, C指的是控制器. 使用MVC设计模式的目的是 在桌面应用程序软件将MV分离, 之前的设计模式都是, 将数据从数据库中取出之后直接开始渲染界面, 如果中间加上Controller层, 我们可以让Model只负责和数据库进行交互操作, Controller负责处理数据 这样可以实现较多的代码复用, 减少代码冗余和降低耦合性.
    • 提高开发速度, 采用并发开发的模式, 在不依赖业务逻辑的情况下专注于视图设计. 反之亦然.

    框架和设计模式的区别

    • 框架和设计模式混淆, 认为MVC是一种设计模式. 实际上框架和设计模式是完全不同的概念.
    1. 框架: Spring(MVC),Django(MTV).
    2. 设计模式: 工厂模式,适配器模式,策略模式.
    • 框架注重的是代码重用, 而设计模式注重的是设计重用, 架构介于两者之间,部分代码重用,部分设计重用,有时分析也可以重用. 在软件生产中有三种级别的重用: 内部重用,即在同一应用中能为公共使用的抽象块; 代码重用: 即将通用模块组合成库或者工具集, 以便在多个领域和应用都能使用;应用框架的重用,即为专业领域提供通用的或者现成的基础结构, 以获得最高级别的重用性.
    • 框架和设计模式虽然相似, 但是却有最根本的区别. 设计模式是在某种特定的环境中反复出现的问题以及解决该问题的方案的描述, 它比框架更加的抽象; 框架可以用代码表示, 也能直接执行或者复用, 而对设计模式而言只有实例才能用代码表示, 设计模式是比框架更小的元素, 一个框架中含有一个或者多个设计模式, 框架总是针对某一个特定领域,但设计模式却可以针对各种应用领域.可以说框架是软件,设计模式是软件的知识.

    框架是大智慧, 用来对软件设计进行分工. 设计模式是小技巧, 对具体的问题提出具体的解决方案, 提高代码的复用率降低耦合度.


    • 所有的设计模式和架构, 基本上都是为了高内聚低耦合,提高开发速度之用.
  • 相关阅读:
    ES6中的reduce
    go.js 基本配置
    ES6(十二)类与对象
    ES6(十一)Proxy和Reflect
    ES6(十)map、set与数组和对象的比较
    ES6(九)set、map数据结构
    ES6(八)Symbol
    ES6(七)对象扩展
    hbase常识及habse适合什么场景
    Hbase与传统数据库的区别
  • 原文地址:https://www.cnblogs.com/A-FM/p/11587981.html
Copyright © 2011-2022 走看看