【Java 单体应用 】第 3 章

什么是系统架构

经常提到的系统架构:三层架构与mvc。
这两种架构都是为了降低系统模块间的耦合度。

三层架构

视图层 View、服务层(业务逻辑层) Service、持久层(数据访问层) DAO(不念刀)。

View:接受用户提交请求的代码(交互)
Service:系统业务逻辑在这里完成
DAO:直接操作数据库的代码

系统复杂度,架构就是解决系统复杂度问题。

为了更好地降低各层间的耦合度,三层架构程序中,采用面向抽象编程。

View -> Service -> DAO -> 数据库(查询效率高,适合复杂查询,安全性好,比普通文件好)

 开发中,业务才是核心,而业务也是有复杂度的。

复杂度是分等级的:

  • 简单业务    只开启 1 个事务
  • 普通业务    开启 3 个事务
  • 复杂业务    开启 7 个事务

多张表之间有依赖关系。 强关联性。

所有东西全都写在 main 里面 ->高耦合。

一个类只做一种事 (内聚)

  工具类: 日期管理 

        依赖

        (所以用一个专门负责日期的运算方法解耦)

         数学工具类:四则运算

       日期也有加减四则运算

一个方法只做一件事。 

写且只写一次

重构原则

  事不过三,三则重构

    提取方法

    提取类

  A类

    四则运算

  B类

    四则运算

  C类

    四则运算

MVC(视图层)

View

model:

  • 数据模型 Entity
  • 业务模型 Service

控制器(controller):

  • 处理用户请求

Servlet 服务器小程序(一个类做了两种事)

  • 处理业务逻辑
  • 处理页面展示

JSP java服务器页面 (JSP就是一个Servlet) 处理页面展示 (把处理页面的功能分离出来了)  是一门技术

  小脚本

  <%%>

登录功能

  业务逻辑完备

  独立的系统

    拆分成各种服务

Doget 和 Dopost

Doget:传参数是明文,传参数有大小限制(4kb的样子)

Dopost:传参数是密文, post没有参数限制,可以上传文件

最重要的区别:语义区别, get是获取得到, post是提交。Get 就应该用于获取数据,Post用于提交数据。

post请求实际是两次(第一次请求问服务器能不能接受数据,第二次才提交), get是一次所以post效率比较低。

  幂等性: 无论调用多少次,都是相同的结果。

pos不具有幂等性

原文地址:https://www.cnblogs.com/AWCXV/p/14059275.html