Day18_学点儿设计模式_MVC和三层架构

2024-04-10 00:04

本文主要是介绍Day18_学点儿设计模式_MVC和三层架构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

0 优质文章

MVC与三层架构
什么是MVC?什么是三层架构?
三层架构与MVC详细讲解
MVC三层架构(详解)

1 MVC

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,
用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
最简单的、最经典就是JSP(view) +Servlet(controller) + JavaBean(model)
视图和逻辑隔离开来
在这里插入图片描述
控制器是核心
M(Model) 模型 JavaBean
V(View) 视图 html jsp Thymeleaf volicity freemaker
C(Control) 控制器 Servlet,Controller,Action

工作流程:

  1. 当控制器收到来自用户的请求
  2. 控制器调用业务层完成JavaBean数据封装
  3. 完成业务后通过控制器跳转JSP页面的方式给用户反馈信息
  4. JSP个 用户做出响应。

什么是JavaBean?

JavaBean:一种规范,表达实体和信息的规范,便于封装重用

  1. 所有属性为private
  2. 提供默认无参构造方法
  3. 提供getter和setter
  4. 实现serializable接口

2 三层架构

在这里插入图片描述
在这里插入图片描述

  1. Controller:负责控制,拿到View传递过来的数据,封装之后交给Service处理,Service处理完了之后,Controller拿到结果之后,将结果交给界面。
  2. Service:业务逻辑(比如分页,为了完成分页就要调用两次DAO层)
  3. DAO:纯粹的JDBC的增删改查操作
    上一层可以调用下一层所有代码,并不是StudentServlet只能调用IStudentService代码,也可以调用ITeacherService代码
	@WebServlet("/student")public class StudentServlet extends HttpServlet {private IStudentService studentService = new StudentServiceImpl();private ITeacherService teacherService = new TeacherServiceImpl();}public class StudentServiceImpl implements IStudentService {private IStudentDao studentDao = new StudentDaoImpl();private ITeacherDao teacherDao = new TeacherDaoImpl();}public class StudentDaoImpl implements IStudentDao {}

在这里插入图片描述

3 分页

在这里插入图片描述
在这里插入图片描述

limitoffset代表偏移到哪个位置,rows代表往下数多少个
pageNo, pageSize -> 1,5 2,5 3,5
limit (pageNo-1)*pageSize ,pageSize

pageNolimit
10,5
25,5
310,5

在这里插入图片描述
在这里插入图片描述

分页常见的问题:

  1. 封装一个分页需要哪些信息
    ①当前页要展示的数据(可以用泛型)②总页数③当前页号④每页展示数据条数⑤
  2. 分页需要发送哪两条sql语句
SELECT id,name,age,gender FROM student LIMIT offset,pagesize
SELECT count(*) FROM student

Pageinfo类:

public class PageInfo{//当前页数据private List<Student> list;//总的页数   Math.ceil(总数量/pageSize)      private Integer totalPage;private Integer pageNo;private Integer pageSize;
}//缺点是这个PageInfo只能封装Student,使用泛型就可以解决这个问题,这个T代表可以传递任何对象
public class PageInfo<T>{private List<T> list;private Integer totalPage;private Integer pageNo;private Integer pageSize;
}public static void main(String[] args) {int totalCount = 12;int pageSize = 5;int totalPage = (int)Math.ceil((double)totalCount / pageSize);System.out.println(totalPage);// 3
}

在这里插入图片描述
在这里插入图片描述

4 代码

Day18_三层架构、分页

这篇关于Day18_学点儿设计模式_MVC和三层架构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/889581

相关文章

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

系统架构设计师: 信息安全技术

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师: 信息安全技术前言信息安全的基本要素:信息安全的范围:安全措施的目标:访问控制技术要素:访问控制包括:等保

Spring MVC 图片上传

引入需要的包 <dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.1</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-

【iOS】MVC模式

MVC模式 MVC模式MVC模式demo MVC模式 MVC模式全称为model(模型)view(视图)controller(控制器),他分为三个不同的层分别负责不同的职责。 View:该层用于存放视图,该层中我们可以对页面及控件进行布局。Model:模型一般都拥有很好的可复用性,在该层中,我们可以统一管理一些数据。Controlller:该层充当一个CPU的功能,即该应用程序

利用命令模式构建高效的手游后端架构

在现代手游开发中,后端架构的设计对于支持高并发、快速迭代和复杂游戏逻辑至关重要。命令模式作为一种行为设计模式,可以有效地解耦请求的发起者与接收者,提升系统的可维护性和扩展性。本文将深入探讨如何利用命令模式构建一个强大且灵活的手游后端架构。 1. 命令模式的概念与优势 命令模式通过将请求封装为对象,使得请求的发起者和接收者之间的耦合度降低。这种模式的主要优势包括: 解耦请求发起者与处理者

创业者该如何设计公司的股权架构

本文来自七八点联合IT橘子和车库咖啡的一系列关于设计公司股权结构的讲座。 主讲人何德文: 在公司发展的不同阶段,创业者都会面临公司股权架构设计问题: 1.合伙人合伙创业第一天,就会面临股权架构设计问题(合伙人股权设计); 2.公司早期要引入天使资金,会面临股权架构设计问题(天使融资); 3.公司有三五十号人,要激励中层管理与重要技术人员和公司长期走下去,会面临股权架构设计问题(员工股权激

MVC(Model-View-Controller)和MVVM(Model-View-ViewModel)

1、MVC MVC(Model-View-Controller) 是一种常用的架构模式,用于分离应用程序的逻辑、数据和展示。它通过三个核心组件(模型、视图和控制器)将应用程序的业务逻辑与用户界面隔离,促进代码的可维护性、可扩展性和模块化。在 MVC 模式中,各组件可以与多种设计模式结合使用,以增强灵活性和可维护性。以下是 MVC 各组件与常见设计模式的关系和作用: 1. Model(模型)

【系统架构设计师】黑板架构详解

黑板架构(Blackboard Architecture)是一种软件架构模式,它模仿了多个专家系统协作解决问题的场景。在这种架构中,“黑板”作为一个中央知识库,存储了问题的当前状态以及所有的解决方案和部分解决方案。黑板架构特别适合于解决那些没有确定算法、需要多个知识源(或称为“专家”)共同作用才能解决的复杂问题。 一、黑板架构的组成 黑板架构主要由以下几个部分组成: 黑板(Blackboa