互联网轻量级框架SSM-查缺补漏第二天
简言:第一天没咋看,因为看的时候已经是下午了。今天上午也因为工作上的事没咋看,本来想按照天去写的,但是内容会太散吧。我决定把整块的内容放在一起写了。天数啥的,就那样把。
还有,我只是言简意赅的去总结一下知识点,而不是全面的介绍。
第二章 Java设计模式
2.1Java反射技术
反射机制之前我特意去看了一次,觉得当时看的还是挺细的,基本没发现看不懂的地方,这里也就不写了。我之前也写过一个随笔,写的不是很全,但是有些东西不需要都写在纸上。
2.2动态代理模式和责任链模式
动态代理模式的意义在于生成一个占位(代理对象),来代理真实对象,从而控制真实对象的访问。
为什么要设置代理?作用在于:在对真实对象进行访问之前或之后,要加入对应的逻辑,或者根据其他规则控制是否使用真实对象。
书上介绍了JDK动态代理和CGLIB动态代理,我就不介绍了,搜索一下有很多易懂的例子,主要还是设计模式的思想。
拦截器:
拦截器接口的设计室给开发者使用的,开发者只要知道拦截器接口的方法、含义和作用即可,不需要知道动态代理是怎么实现的。
注:这个例子我写了一部分代码,所以不结合我这本书不一定能看懂,还是不要看了。但是例子的意义可以了解下。
例如:定义拦截器接口Interceptor,包含三个方法,before,around,after。
public boolean before(Object proxy,Object target,Method method,Object[] args){//作为一个逻辑判断,书上的例子返回falseSystem.out.print("反射方法前逻辑");return false; } public void after(Object proxy,Object target,Method method,Object[] args){System.out.print("反射方法后逻辑"); } public void around(Object proxy,Object target,Method method,Object[] args){//在before方法返回false时执行System.out.print("取代了被代理对象的方法"); }
接口会作为参数传入动态代理中,然后把动态代理中的对应参数传入interceptor的对应方法中。
这个例子的意义就是用interceptor的before方法控制了是否要反射原有对象,before返回true时,反射原有对象,false是执行around方法,最后都统一执行after。
总结:
设计者把拦截器接口暴露给开发者使用,让动态代理的逻辑在开发者的视野中“消失”。拦截器的作用是进一步简化动态代理的使用方法,使程序变得更简单。
责任链模式:
当一个对象在一条链上被多个拦截器拦截处理使,我们把这种设计模式称为责任链模式。简单易懂。
2.3观察者模式
观察者模式又称为发布订购模式。是对象的行为模式(一个对象的变化引起观察者需要做出改变)。观察者模式定义了一种一对多的依赖关系。让对个观察者对象同时监视被观察者的状态,当被观察者的状态发生变化时,会通知所有观察者并让其自动更新自己。
比如商家有一些产品,它和电商合作,当产品有变化的时候,电商也必须做出调整。就拿出新产品Product举例。(这是书上的例子,我这里就按我的理解来记了)
定义产品列表ProductList类,有两个主要属性,产品列表productList,电商列表observerList。当集合productList新增元素product后,就应该图同时observerList中的所有电商,书上是定义了一个notifyObserver的方法。
2.4工厂模式和抽象工厂模式
简单工厂模式(普通工厂模式):一个工厂对应着各种产品,通过多态,按照产品编号可以得到不同的产品。总的说就是多态的体现。
抽象工厂模式:一个抽象工厂的接口,衍生出多个类型的工厂,然后再各自生产产品。客户只需要知道有这么一个工厂,他能生成我所需要的产品就好。
2.5建造者模式
我自己的理解呀,就是在复杂对象的创建中,这个对象可能由很多其他对象组合成。那么当构建这个对象时就可以理工建造者模型。
(例子是套票问题,套票是由成人票,有座儿童票,无座儿童票,老年片,军人及军人家属票中的几种构成)
有一个Helper类,此类中定义了一些构造对象的方法(创建成人票,儿童票等票的对象并返回),创建套票的时候只需要根据需要,利用Helper类中的方法来得到想要的种类的票的对象就好。
转载于:https://www.cnblogs.com/shiboinfo/p/10156474.html
互联网轻量级框架SSM-查缺补漏第二天相关推荐
- JAVA核心,200例,查缺补漏
适用于想要查缺补漏的人:本已经掌握的技术,但是不知道如何表达的人:不断完善技自己,顺带梳理下答案. 主要包括以下模块:Java基础.容器.多线程.反射.对象拷贝.Java Web模块,异常.网络.设计 ...
- 2020年最新最全的Java面试经历整理(一次性查缺补漏个够)
前言 现在已经是2020年了,相信很多人都在准备面试,,如何拿到心仪的 Offer,进入梦寐以求的大厂,实现自己的职业理想,达到程序员的小康水平. 这篇文章主要介绍了刘哥一月份的几次面经,(一次性查缺 ...
- 查缺补漏系统学习 EF Core 6 - 批量操作
推荐关注「码侠江湖」加星标,时刻不忘江湖事 这是 EF Core 系列的第七篇文章,上一篇文章讲述了 EF Core 中的实体数据修改. 这篇文章讲一讲 EF Core 如何进行批量操作. 在众多的 ...
- EFCore查缺补漏(二):查询
相关文章: EFCore查缺补漏 第 20 轮 TechEmpower 评测结果出炉了,ASP.NET Core 的 Plaintext 成绩名列前茅,带着 EFCore 的测试却在 Single q ...
- 「查缺补漏」高频考点浏览器面试题
前言 想要成为一名合格的前端工程师,掌握相关浏览器的工作原理是必备的,这样子才会有一个完整知识体系,要是「能参透浏览器的工作原理,你就能解决80%的前端难题」. 这篇梳理的话,更多的是对浏览器工作原理 ...
- MySQL查缺补漏 从无到有
MySQL查缺补漏 从无到有 有这一篇就够了 数据库概述 SQL概述 什么是数据库 MySQL概述 SQL的分类 DOS命令窗口使用MySQL的基本命令 查看MySQL的版本 进入MySQL 导入数据 ...
- 查缺补漏系统学习 EF Core 6 - 数据查询
这是 EF Core 系列的第四篇文章,上一篇文章讲述了 EF Core 中的实体迁移与数据播种. 这篇文章盘点一下 EF Core 的几种数据查询方式,内容较多分上下两篇. 点击上方或后方蓝字,阅读 ...
- java基础的查缺补漏
打好基础,加油加油加油! 文章目录 前言 day1(6.16test,7.2) day2(7.3) java运行机制 java关键字 变量定义 常量定义 7.4 7.6 总结 前言 为了方便自己回顾知 ...
- Python高效技巧(三)---查缺补漏(时间处理、shutill模块、高阶函数、装饰器)
Python高效技巧 前言: 函数 1.可接受任意数量参数的函数和关键词参数 2.匿名函数 lambda 二.其他 1.关于序列的各种方法 2.产生器表达式 三. 查缺补漏 1.时间处理 1. cal ...
- I2C总线学习—查缺补漏—S3C2440的I2C控制器
I2C总线学习-查缺补漏-S3C2440的I2C控制器 学习了IIC总线协议的理论部分,觉得应该学习具体操作2440的IIC控制器,毕竟最终都是为了学习S3C2440 ...
最新文章
- [剑指offer] 跳台阶
- 对三层架构的简单改进
- oracle 错误: ORA-12899:始终提示字段太大
- OpenCV超分辨率基准测试
- Mybatis 高级结果映射 ResultMap Association Collection
- bzoj2751[HAOI2012]容易题(easy)
- Android之录音--AudioRecord、MediaRecorder
- jar包导出无法显示图片或者音乐_如何制作图片视频短片,配上音乐闪耀朋友圈!...
- logistic回归详解(二):损失函数(cost function)详解
- 阿里云服务器端口请求失败(在控制台把端口添加到服务器的安全组)
- 项目管理之成熟度模型
- centos本地yum源配置
- Git以及Githup的使用
- GC overhead limit exceeded
- 什么是商业智能 (BI) 仪表板?
- 从高级程序员-资深程序员-技术总监,我都为你整理好了学习路径
- 新思科技网络安全研究中心分析手机中的生物识别数据泄露漏洞
- 亲测有效,解决MAC无法联网的问题
- html手抄报怎么制作,手抄报怎么做
- c语言参悟之旅,C语言参悟之旅