Loading

摘要: 本文所有内容均节选自《设计模式就该这样学》 序言 Design Patterns: Elements of Reusable Object-Oriented Software(以下简称《设计模式》),一书由Erich Gamma、Richard Helm、Ralph Johnson和John Vli 阅读全文
posted @ 2021-11-26 15:07 Tom弹架构 阅读(1493) 评论(10) 推荐(36) 编辑
摘要: Spring作为当前Java最流行、最强大的轻量级框架。Spring Bean的生命周期也是面试高频题,了解Spring Bean周期也能更好地帮助我们解决日常开发中的问题。程序员应该都知道Spring的基础容器是ApplicationContext。应很多粉丝的强烈建议,本文我来分析分析 Appl 阅读全文
posted @ 2021-12-08 13:44 Tom弹架构 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 本文所有内容均节选自《设计模式就该这样学》 序言 Design Patterns: Elements of Reusable Object-Oriented Software(以下简称《设计模式》),一书由Erich Gamma、Richard Helm、Ralph Johnson和John Vli 阅读全文
posted @ 2021-11-26 15:07 Tom弹架构 阅读(1493) 评论(10) 推荐(36) 编辑
摘要: 本文节选自《设计模式就该这样学》 1 雇工模式的定义 雇工模式(Employee Pattern)也叫作仆人模式(Servant Pattern),属于行为型设计模式,它为一组类提供通用的功能,而不需要类实现这些功能,也是命令模式的一种扩展。 2 雇工模式的应用场景 在日常开发过程中,我们可能已经接 阅读全文
posted @ 2021-11-25 19:53 Tom弹架构 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 本文节选自《设计模式就该这样学》 1 空对象模式的定义 空对象模式(Null Object Pattern)不属于GoF设计模式,但是它作为一种经常出现的模式足以被视为设计模式了。其具体定义为设计一个空对象取代NULL对象实例的检查。NULL对象不是检查控制,而是反映一个不做任何动作的关系。这样的N 阅读全文
posted @ 2021-11-25 19:53 Tom弹架构 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 本文节选自《设计模式就该这样学》 1 对象池模式的定义 对象池模式(Object Pool Pattern),是创建型设计模式的一种,将对象预先创建并初始化后放入对象池中,对象提供者就能利用已有的对象来处理请求,减少频繁创建对象所占用的内存空间和初始化时间。 一个对象池包含一组已经初始化并且可以使用 阅读全文
posted @ 2021-11-25 19:53 Tom弹架构 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 本文节选自《设计模式就该这样学》 1 规格模式的定义 规格模式(Specification Pattern)可以认为是组合模式的一种扩展。很多时候程序中的某些条件决定了业务逻辑,这些条件就可以抽离出来以某种关系(与、或、非)进行组合,从而灵活地对业务逻辑进行定制。另外,在查询、过滤等应用场合中,通过 阅读全文
posted @ 2021-11-25 19:00 Tom弹架构 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 本文节选自《设计模式就该这样学》 1 使用访问者模式实现KPI考核的场景 每到年底,管理层就要开始评定员工一年的工作绩效,员工分为工程师和经理;管理层有CEO和CTO。那么CTO关注工程师的代码量、经理的新产品数量;CEO关注工程师的KPI、经理的KPI及新产品数量。 由于CEO和CTO对于不同的员 阅读全文
posted @ 2021-11-24 15:09 Tom弹架构 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 本文节选自《设计模式就该这样学》 1 中介者模式的应用场景 在现实生活中,中介者的存在是不可缺少的,如果没有了中介者,我们就不能与远方的朋友进行交流。各个同事对象将会相互进行引用,如果每个对象都与多个对象进行交互,则会形成如下图所示的网状结构。 从上图可以看到,每个对象之间都过度耦合,这样既不利于信 阅读全文
posted @ 2021-11-23 20:41 Tom弹架构 阅读(101) 评论(0) 推荐(1) 编辑
摘要: 本文节选自《设计模式就该这样学》 1 使用备忘录模式实现草稿箱功能 大家都用过网页中的富文本编辑器,编辑器通常都会附带草稿箱、撤销等操作。下面用一段代码来实现一个这样的功能。假设,我们在GPer社区中发布一篇文章,文章编辑的过程需要花很长时间,中间也会不停地撤销、修改,甚至可能要花好几天才能写出一篇 阅读全文
posted @ 2021-11-23 14:06 Tom弹架构 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 本文节选自《设计模式就该这样学》 1 命令模式的UML类图 命令模式的UML类图如下图所示。 2 使用命令模式重构播放器控制条 假如我们开发一个播放器,播放器有播放功能、拖动进度条功能、停止播放功能、暂停功能,我们在操作播放器的时候并不是直接调用播放器的方法,而是通过一个控制条去传达指令给播放器内核 阅读全文
posted @ 2021-11-22 16:53 Tom弹架构 阅读(278) 评论(1) 推荐(1) 编辑