JAVA架构师之路十四:设计模式之模板模式
模板模式
- 1. 模板模式
- 2. 模板模式案例
- 3. JDBC模板模式
没有意志,理想便是幻想。
1. 模板模式
定义
通常又叫模板模式,是指定义一个算法的骨架,并允许子类为其中的一个或者多个步骤提供实现。
模板方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤
属于行为设计模式
适用场景
一次性实现一个算法不变的部分,并将可变的行为留给子类实现
各子类中公共的行为被提取出来并集中到一个公共的父类中,从而避免代码重复
优点
利用模板方法将相同处理逻辑的代码放到抽象父类中,可以提高代码的复用性。
将不同的代码不同的子类中,通过对子类的扩展增加新的行为,提高代码的扩展性。
把不变的行为卸载父类上,去除子类的重复代码,提高了一个很好的代码复用平台,符合开闭原则。
缺点
类的数目增加,每一个抽象类都需要一个子类来实现,这样导致类的个数增加
类数目的增加,间接地增加了系统实现的复杂度
继承关系自身缺点,如果父类添加新的抽象方法,所有子类都要改一遍。
2. 模板模式案例
public abstract class AbstractStep { protected final void step() { // 第一步: step1(); // 第二步: step2(); // 第三步: step3(); // 第四步: step4(); } protected void step4(){ System.out.println("第四步"); } protected void step3(){ System.out.println("第三步"); } protected void step2(){ System.out.println("第二步"); } protected void step1() { System.out.println("第一步"); }}
public class StepOne extends AbstractStep {}
public class StepTwo extends AbstractStep {}
public class Test { public static void main(String[] args) { StepOne one = new StepOne(); one.step(); StepTwo two = new StepTwo(); two.step(); }}
第一步第二步第三步第四步第一步第二步第三步第四步
在抽象类AbstractStep
中定义了不可重写的方法step()
,这个方法规定了要按顺序执行的方法,子类不可以修改。如果StepOne
类只能修改其余的方法。
public class StepOne extends AbstractStep { @Override protected void step1() { System.out.println("子类执行"); }}
子类执行第二步第三步第四步第一步第二步第三步第四步
这就是模板方模式。
3. JDBC模板模式
现在开发中直接操作jdbc
的少了,以前灭有mybatis
等orm
框架的时候,数据库操作增删改查
都是被封装成模板方法的。这个是模板模式的典型案例。
感谢您阅读本文,如果您觉得文章写的对您有用的话,请您点击上面的“关注”,点个赞,这样您就可以持续收到《JAVA架构师之路》的最新文章了。文章内容属于自己的一点点心得,难免有不对的地方,欢迎在下方评论区探讨,你们的关注是我创作优质文章的动力。
赞 (0)