简言:第一天没咋看,因为看的时候已经是下午了。今天上午也因为工作上的事没咋看,本来想按照天去写的,但是内容会太散吧。我决定把整块的内容放在一起写了。天数啥的,就那样把。

   还有,我只是言简意赅的去总结一下知识点,而不是全面的介绍。

第二章 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-查缺补漏第二天相关推荐

  1. JAVA核心,200例,查缺补漏

    适用于想要查缺补漏的人:本已经掌握的技术,但是不知道如何表达的人:不断完善技自己,顺带梳理下答案. 主要包括以下模块:Java基础.容器.多线程.反射.对象拷贝.Java Web模块,异常.网络.设计 ...

  2. 2020年最新最全的Java面试经历整理(一次性查缺补漏个够)

    前言 现在已经是2020年了,相信很多人都在准备面试,,如何拿到心仪的 Offer,进入梦寐以求的大厂,实现自己的职业理想,达到程序员的小康水平. 这篇文章主要介绍了刘哥一月份的几次面经,(一次性查缺 ...

  3. 查缺补漏系统学习 EF Core 6 - 批量操作

    推荐关注「码侠江湖」加星标,时刻不忘江湖事 这是 EF Core 系列的第七篇文章,上一篇文章讲述了 EF Core 中的实体数据修改. 这篇文章讲一讲 EF Core 如何进行批量操作. 在众多的 ...

  4. EFCore查缺补漏(二):查询

    相关文章: EFCore查缺补漏 第 20 轮 TechEmpower 评测结果出炉了,ASP.NET Core 的 Plaintext 成绩名列前茅,带着 EFCore 的测试却在 Single q ...

  5. 「查缺补漏」高频考点浏览器面试题

    前言 想要成为一名合格的前端工程师,掌握相关浏览器的工作原理是必备的,这样子才会有一个完整知识体系,要是「能参透浏览器的工作原理,你就能解决80%的前端难题」. 这篇梳理的话,更多的是对浏览器工作原理 ...

  6. MySQL查缺补漏 从无到有

    MySQL查缺补漏 从无到有 有这一篇就够了 数据库概述 SQL概述 什么是数据库 MySQL概述 SQL的分类 DOS命令窗口使用MySQL的基本命令 查看MySQL的版本 进入MySQL 导入数据 ...

  7. 查缺补漏系统学习 EF Core 6 - 数据查询

    这是 EF Core 系列的第四篇文章,上一篇文章讲述了 EF Core 中的实体迁移与数据播种. 这篇文章盘点一下 EF Core 的几种数据查询方式,内容较多分上下两篇. 点击上方或后方蓝字,阅读 ...

  8. java基础的查缺补漏

    打好基础,加油加油加油! 文章目录 前言 day1(6.16test,7.2) day2(7.3) java运行机制 java关键字 变量定义 常量定义 7.4 7.6 总结 前言 为了方便自己回顾知 ...

  9. Python高效技巧(三)---查缺补漏(时间处理、shutill模块、高阶函数、装饰器)

    Python高效技巧 前言: 函数 1.可接受任意数量参数的函数和关键词参数 2.匿名函数 lambda 二.其他 1.关于序列的各种方法 2.产生器表达式 三. 查缺补漏 1.时间处理 1. cal ...

  10. I2C总线学习—查缺补漏—S3C2440的I2C控制器

    I2C总线学习-查缺补漏-S3C2440的I2C控制器                  学习了IIC总线协议的理论部分,觉得应该学习具体操作2440的IIC控制器,毕竟最终都是为了学习S3C2440 ...

最新文章

  1. [剑指offer] 跳台阶
  2. 对三层架构的简单改进
  3. oracle 错误: ORA-12899:始终提示字段太大
  4. OpenCV超分辨率基准测试
  5. Mybatis 高级结果映射 ResultMap Association Collection
  6. bzoj2751[HAOI2012]容易题(easy)
  7. Android之录音--AudioRecord、MediaRecorder
  8. jar包导出无法显示图片或者音乐_如何制作图片视频短片,配上音乐闪耀朋友圈!...
  9. logistic回归详解(二):损失函数(cost function)详解
  10. 阿里云服务器端口请求失败(在控制台把端口添加到服务器的安全组)
  11. 项目管理之成熟度模型
  12. centos本地yum源配置
  13. Git以及Githup的使用
  14. GC overhead limit exceeded
  15. 什么是商业智能 (BI) 仪表板?
  16. 从高级程序员-资深程序员-技术总监,我都为你整理好了学习路径
  17. 新思科技网络安全研究中心分析手机中的生物识别数据泄露漏洞
  18. 亲测有效,解决MAC无法联网的问题
  19. html手抄报怎么制作,手抄报怎么做
  20. c语言参悟之旅,C语言参悟之旅

热门文章

  1. ArcGIS Engine中的Symbols详解
  2. 业余实现一个统计A股数据工具
  3. 持续集成 - Hudson
  4. 助力中文文字识别突破,美团公开首个真实场景招牌图像数据集
  5. XSS的原理分析与解剖
  6. 阿里年会的马老师说:认真生活、快乐工作、保持理想
  7. RStudio版本号管理 整合Git
  8. 打印html5中Canvas的方法
  9. 如何破解root以及grub密码
  10. 一个网站项目的开始,定位有多重要?