SpringMVC涉及到的三个设计模式
1.MVC涉及到的设计模式有三个,分别是组合模式、策略模式、观察者模式。
2.View层,单独实现了组合模式,Model层和View层实现了观察者模式,View层和Controller层实现了策略模式。
3.(1)组合模式(composite)将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。
理解:以后一般处理树形结构的时候一般都使用组合模式,像自己电脑文件夹的解析,xml的解析都是树形结构。
组合模式练习与应用
模拟清理文件夹中的视频文件,图像文件。
观察者模式(server):
/**
- 观察者模式
- 广播机制的场景,聊天室,打游戏时小地图的方位
- 把多个订阅者、客户称之为观察者,把变化的内容称之为目标
- 核心:用于1:N的通知
- 通知观察者的模式:
- 推:每次都会把通知以广播方式发送给所有观察者,所有观察者只能被动接收
- 拉:观察者只要知道有情况即可。至于什么时候获取内容,获取什么内容,都可以自助决定
/
改动一个后,观察者可以看到数据的改动
策略模式:
/* - 负责和具体的策略类交互
- 这样的话,具体的算法和直接的客户端调用分离了,独立于客户端的变化
- 如果使用spring的依赖注入功能,还可以通过配置文件,动态的注入不同策略对象,动态的切换不同的算法
- 开发常见的场景:
- JAVASE中GUI编程中,布局管理
- Spring框架中,Resourse接口,资源访问策略
- @author zhengtz
*/
根据不同的情况,分配不同的算法,实现典例CRM中报价策略
SpringMVC涉及到的三个设计模式相关推荐
- 干掉if else!试试这三种设计模式,优化代码贼顺手!
点击上方"芋道源码",选择"设为星标" 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | ...
- SpringMVC深度探险(三) —— DispatcherServlet与初始化主线
本文是专栏文章(SpringMVC深度探险)系列的文章之一,博客地址为:http://downpour.iteye.com/blog/1341459. 在上一篇文章中,我们给出了构成SpringMVC ...
- java中控制反转_Java如何利用IOC控制反转的三种设计模式详解
这篇文章主要为大家详细介绍了Java使用IOC控制反转的三种设计模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 对于许多开发人员来说,控制反演(IoC)都是一个模糊的概念,因为他们在现实世界中 ...
- 数据库 -- 由数据库连接池引出的三种设计模式
笔记摘要: 这里首先对数据库连接池的优化进行了说明,同时自己编写了一个数据库连接池,在实际开发中,为了获取标准的数据源,我们需要去实现javax.sal.DataSource接口, 在实现过程中对于链 ...
- JAVA 设计模式(三)—— 设计模式之工厂模式
文章目录 一.工厂模式概述 1.工厂模式简介 2.工厂模式分类 二.简单工厂模式 1.简单工厂模式示例 2.简单工厂模式分析 三.工厂方法模式 1.工厂方法模式示例 2.工厂方法模式分析 四.抽象工厂 ...
- 23三种设计模式详解
设计模式分为三大类: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组合模式.享元模式. ...
- 非注解和注解的处理器映射器和适配器---SpringMVC学习笔记(三)
非注解的处理器映射器和适配器 非注解的处理器映射器 之前的入门Demo中使用的就是非注解的处理器映射器: org.springframework.web.servlet.handler.BeanNam ...
- SpringMVC之数据传递三Ajax与Controller交互
前面学习了拦截器,通过拦截器我们可以拦截请求,做进一步处理之后再往下进行,这里我们使用Ajax的时候会有一个问题就是会把js.css这些静态资源文件也进行了拦截,这样在jsp中就无法引入的静态资源文件 ...
- springMVC数据格式转换的三种实现
在Java的开发中,经常需要进行数据类型的转换,最常见的就是字符型转成Date类型存入数据库.以下介绍三种数据类型转换的方法. 一,使用ConversionService转换数据 二,使用自定义编辑器 ...
最新文章
- The Innovation | 中科院青促会主办精品英文期刊视频简介,定位IF 20+国际顶刊
- 电脑键盘上每个键作用
- [转载]LEB128格式简介(CN)
- 《图解HTTP》核心知识总结
- Spring Cache 实战:兼容所有缓存中间件!
- 手动制作python安装模块
- Linux设备驱动——内核定时器
- 记一次抓包和破解App接口
- PC微信多开源代码-消息钩子+ZwQuerySystemInformation
- 重磅 | 完备的人工智能AI 学习——基础知识学习路线,所有资料免关注免套路直接网盘下载
- java调用dll实例_如何用java调用dll,详细图解
- 零基础使用vscode实现python爬取高德地铁数据
- 神经网络论文Enhancing deep neural networks via multiple kernel learning
- 【c++】GUARDED_BY(c) 和 PT_GUARDED_BY(c)
- AndroidStudio Launching ‘app‘ Time out 错误
- HTML用户名判断,用户名判断(练习)
- 新媒体运营:如何策划出一场完整高效的活动方案?(一) | 黎想
- 小程序 报错 errcode: 40029, errmsg: invalid code, hints: [ req_id: HQd79a0747th31 ]
- 算法与数据结构-分治法
- osgEarth示例分析——osgearth_features
热门文章
- cocos 链接PHP服务器,Cocos网络篇[3.2](2) ——HTTP连接
- 泊松回归与类泊松回归(《R语言实践(第二版)》)
- COW(暴力枚举) + 玄神的字符串(思维题) + Duplicate Strings(字符串思维题)
- 放松一下——简单的优美动态网页(带背景音乐)
- List初始化、集合复制
- 科学与艺术的融合:遗传算法绘制蒙娜丽莎
- RGB颜色对照表大全
- win作业1-信用卡还贷
- @JsonFormat 12小时制跟24小时制
- 图片服务架构学习之ZIMG