MVC
M:Model ——处理业务
V:View ——用来显示
C:controller ——控制分派
项目技术和整体安排
· 客户端-交互 · 前端
-输入数据 -JSP,EL
-查看响应 -CSS,DIV
· 服务器端-处理 · 后端
-接请求处理给响应 -Servlet
-尖现教据库查询操作 -JDBC
-尖现分层结构 · 前后通信
-实现面向接口编程 -JSON
-应用单元测试框架 · 项目管理
· 数据库 -maven
-MySQL
项目具体实现功能
· 用JSP做界面
-输入d号
-查看数据库中具体对应id号的容户信息
· 用servlet处理请求
-接请求,调备,给响应
· 用service处理业务
-接口和实现
· 用dao处理数据访问和作
-接口和实现
· 用pojo封装数据
· 用junit和JSON做单元测试
· 用 DBUtils封装数据访问工具(方法)
项目的分层结构
· 体系结构
-客户端
-应用程序服务器
· Tomcat容器
-项目子容器
-数据库服务器
· 三层
-表示层
-中间层
-数据访问层
三层结构
为什么需要三层结构
两层结构
当数据库或用户界面发生改变时需要重新开发整个系统
三层结构
当数据库用户界面发生改变时不需要重新开发,只做筒单调整即可
三层之间依赖关系
表示层 view → 业务逻辑层 bl/service → 数据访问层 dao
三层之间的数据传递方向
DAO模式
· Goods类(其对象/实例)与 goods表对应
· 在库表里修改“某商品”这条记录(的各列),即修改 Goods类对象相应的属性
· 把该对象交给专门处理对象和数据库之间进行数据交换的类(如 GoodsDao)来处理
即可
· 以上这种模式,即为DAO模式
三层与MVC
二者使用范围不同:
· 三层可以应用于任何语言、任何技术的应用程序【实现概念级:为了明确逻辑】
· MVC只是为了解决BS应用程序视图层各部分的耦合关系【软件概念级:为了解耦】
互不冲突,可以同时存在,可根据情况使用其中一种
三层与MVC的不同
· 三层是整个应用程序架构,MVC是功能模块
-三层是基于业务逻辑来分的,而MVC是基于页面来分的
· MVC模式是一种复合设计模式,一种解决方案
· 三层是种软件杂构,通过接口实现编程
-三层模式是体集结构模式,MVC是设计模式
-三层模式又可归于部模式,MVC可归于表示模式
常见控制器具体动作
1.读取请求,包括读取请求参数
2.协调到模型,完成业务
3.存储用户视图的数据模型信息【设置作用域对象属性值】
4.控制跳转/导航/转发
MVC里边的各个模块的职责
· mode模型:劳动者
-接受controller的指令
-只要告诉model做什么, controller要拿到什么
-通过自身功能实现和DAO去处理这个事情
-以最快最准确的方式完成controller给的任备
· modelcontroller就是一直和按制森和数据库DB交互的中间件
-把数据库DB作一个生产资料的仓库,model从里边拿最原始的材料,经过适的加工成成品将这个半成品给控制器controller, controller对半成品做适当的封装交给一线的view进一步完善并表现到前端。
-model果,代码量应会比较虎大
· model有很多种
-数据封装
-核算法、核心业务、美键操作
-工具集
· view视图
-通过自己擅长的丰富的表现形式展示给用户
-还负责从用户那里拿到 controller想要获取到的数据
-人机交互的重要工作就交给了view来完成了
-责任也是相当重大的【长相很重要】
-越来多样化
页面级显示逻辑处理
· EL表达式
· jttl标签
· 其它UI框架
MVC的思想
· mvc最大的优势是代码复用
· 面向对象编程里最重要的思想是封装、继承、多态,归根到底应该是为了解决大型软件编写
过程中代码维护和多人协作的难题
-封装让接口规范统一
-都面向接口编程
-继承和多态解决了代码复用的问题
· 在此基础上演化出很多的设计模式,其实就是对封装、继承、多态的进一步抽象,对特定问
题形成较为合适的解决方案
项目实现过程中的思想
· 分层思想【微积分思想】
· 低耦合高内聚【事物本质和事物联系】
· 开闭原则
· 面向对象的编程思想【重用】
· 面向接口的思想【注重方法的统一】
· 由底向上的开发构建思路【千里之行】
· 测试驱动的流程【稳中求胜】
· 没有最好的技术,只有最佳的匹配