设计模式入门:最简单的模板方法模式

目录

  • 使用场景
  • 案例--写作文
  • 建议模版方法用final修饰

使用场景

提供一个模版方法每个人拿到这个模版 在二次做自己的个性化开发
如下图的write方法只有正文部分是不一样的 就可以把它抽离成一个模板方法提高代码复用
并把正文部分写成抽象方法 让子类去个性化实现正文部分

大致实现步骤

案例–写作文

先写抽象类 把整个作文模版定义成一个模版方法:write()
在模版方法write()里先写好不变的开头和结尾 然后提供一个抽象方法writeMain()用来给子类写正文部分 并在模版方法write()里直接调用抽象方法writeMain()
让子类继承抽象类 个性化实现抽象方法writeMain()
子类对象需要写作文的时候直接调用模板方法write()即可

抽象类(父类) write()就是一个模板方法:

两个子类:

测试类(子类对象调用父类中的模板方法 来写作文):
s调用write() write()里又调用writeMain() 也可以看成是就近原则(优先调用子类s重写过的writeMain)

建议模版方法用final修饰

模版方法最好用final修饰(他是给子类用的 不是给子类重写的)
比如上面学生抽象类里的模版方法write()
他是给子类(小学生 中学生) 作为一个作文模版直接去用的 不是给子类重写的(如果模板可以被随意重写 那他就不是一个模板了)
子类要重写的是个性化writeMain()方法