首页 > 代码库 > 模板模式

模板模式

模板模式

 

1、释义

模板这个词,我们经常会听到,套一套模板啊,不管是幻灯片还是HTML

 

我们自然也知道,模板代表的是一个半成品框架

 

也就是说主要的结构依然成型,大都是提供元素的不同罢了

 

所以模板模式代表的是:定义一个框架,拥有固定的算法逻辑,而部分算法是抽象的,也就是由子类去实现的。

 

2、意图

  • 有固定的算法步骤
  • 部分算法的实现由子类去决定

也就是说,分给子类部分权限,但总的如何去做都是按照父类规定好的方式去做。

 

3、例子

 

技术分享

 

可以看得出getConnect方法是final,无法继承的,这就是我们的核心算法定义

 

而这个方法中,应当是对registerDriver、configOptions、openConnect等方法的调用,真正的实现,确是子类来决定

 

其次,我们还可以通过needOpenHook这个钩子方法的覆盖来决定是否需要打开链接,如果是缓存中已经存在,则可以不打开连接

 

这便是钩子方法的作用,可以决定父类中算法的逻辑,例如是否要打开新连接

 

模板模式