zoukankan      html  css  js  c++  java
  • 软件分层与MVC

    面向对象编程;面向切面编程;面向过程编程;

    MVC

    软件分层开发可以解耦合,减少关联关系,明确分工。

    项目遵循mvc五层规范,数据访问层使用的是dao模式,web层(ui)使用的是mvc模式,mvc模型和应用分层不冲突,mvc在ui层。

    客户->view->controller->model->controller->view,还有直接请求controller的,

    项目越来越大,最高宗旨就是解耦合;用户越来越多,最高宗旨就是高并发;数据越来越多,最高宗旨就是大数据;需求越来越复杂,最高宗旨就是AI;因此,分布式服务器很重要;

    分层开发步骤

    1.层次划分,包 -- 层;2.实体类建模,vo包下的,与db表对应。实体类自动生成表(正向生成),表自动生成实体类(逆向生成,较科学),但这均有时不准确;3.dao;4.service;5.ui

    实际合作开发中,根据详细设计文档,文档中标识定义出了接口、方法,不一定必须按dao -> service -> ui顺序开发。管理系统事实上是对象传递的过程,UI层提供的data足够多 -> 在控制层封装成pojo,否则在业务层封装成对象。

    实体类 -> dao -> 元组;元组->dao->实体类;

    应用层次

    视图层(View)

    Filter层

    controller层(C)

    model层(M):business/service/业务逻辑层、异常逻辑的定义、事务处理;每个非抽象实体类都实现一个单独的接口。用户添加好友,是好友表的insert,-> 是好友服务。dao层写好了封装好了 -> 写业务层就很顺手。

    dao层(M):CURD 只做db操作,不考虑业务逻辑;每张表的db操作都实现一个单独的接口。原本以为增删改查操作弄成一个接口,其它db操作弄成一个接口,-> 这不合理。相同db操作的表实现同一接口即可(dao层、业务层都是这样)。多个内存集合合并成一个集合 -> dao层不做这种事。

    持久化层:persistence 和dao层合在一起 data持久化

    数据库

    注意

    1.不允许跨层依赖,dao层依赖db,每一层的改动只影响上一层

    2.实体类的作用:data在各层的传递。实体类有很多种,如vo、pojo、po、dto、entity、domain

  • 相关阅读:
    Spring、Spring Boot 和 Spring Cloud 的关系
    Spring Boot 如何设置支持跨域请求?
    什么是嵌入式服务器?我们为什么要使用嵌入式服务器呢?
    nginx配置域名,不要端口
    域名解析以及nginx服务器设置
    为什么使用nginx
    RabbitMQ下载与安装(window版)
    spring的@ComponentScan注解
    spring的@EnableScheduling注解
    日志切割: logrotate、python、shell实现
  • 原文地址:https://www.cnblogs.com/yyjh/p/10962518.html
Copyright © 2011-2022 走看看