设计模式-策略模式

前面聊过模版方法,在一个算法中某步骤有多套实现时,可以很有效替换算法步骤。那如果在一套代码中有多种策略呢?更换策略是否还要更改原有的代码?这次说说策略模式。

阅读更多

设计模式-职责链模式

我们总有请假的时候,每个单位可能制度都不一样,但都对请假时间长短有规定不同流程。例如0.5-1天假向经理报告,2-3天假向hr报告,3以上的假期需总经理或老板签字等等。既然有这种状况,程序也务必会遇到此类情况,要说的就是处理此类问题时可能用到的设计模式——职责链模式。

阅读更多

设计模式-观察者模式

业务总会有环环相扣的联动,一环变化会引发后续环的变动。一个对象的变化,可能会引发一个或多个对象的变化,今天我就要说的能引用此种场景的设计模式——观察者模式。

阅读更多

SpringMVC拦截器Interceptor

SpringMVC拦截器是个非常好用的东西,对于每个请求有分别对进入控制器前、执行控制器后渲染之前、渲染之后的行为都能拦截。通常我们用拦截器实现了权限管理、MyBatis分页功能等。

阅读更多

设计模式-组合模式

如何用一个对象表达一棵树?如何用一个对象遍历一棵树的所有节点?这是我们下面要讨论的一个设计模式——组合模式。该模式其实并不常见,也不常用,但需要解决树形的数据结构时,它是极佳的解决方法。

阅读更多

设计模式-适配器与装饰器的比较

前面已经说到了适配器和装饰器两种模式,两种怎么看都一样的,其实它们龙凤双胞胎。

阅读更多

设计模式-装饰器模式

上一篇说到适配器模式,这次说它的同胞兄弟——装饰器模式。我们有时会遇到需要对类自身方法功能的累加,比如FilterInputStream需要InputStream其他子类的read上累加功能。

阅读更多

设计模式-适配器模式

这次,我们来说说一个极其不常用到的模式——适配器模式。也并不是绝对极不常用,如果自个写框架之类的话,也许会变得很常用。怎么个常用法呢?在需要使用某个类时,其提供的接口并不是你所希望的,又或者说你还需处理接口返回的结果,你就可以用适配器模式解决此类问题。

阅读更多

设计模式-桥接模式

桥接模式在实际应用中,相比模板方法更为常见。在现实应用情况中,我们面对的是各种各样关系的维度,通过拼接不同维度能方便地实现不同功能,然而给我们的代码带来不少麻烦。一般地,我们面对关系复杂的维度,通常会使用树及林,其结果就是整片代码复杂的继承关系(有时也浪费了这个继承),桥接模式似乎能解决这个问题。

阅读更多

设计模式-模板方法模式

模板方法算是种较为常见的设计模式,同时对于大多数场景来说也很实用。在面临多算法交换更替使用的情况下,模板方法为你提供了各种算法的“开关”,提高算法的代码复用度。

阅读更多