JAVA架构师之路十四:设计模式之模板模式

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的少了,以前灭有mybatisorm框架的时候,数据库操作增删改查都是被封装成模板方法的。这个是模板模式的典型案例。

感谢您阅读本文,如果您觉得文章写的对您有用的话,请您点击上面的“关注”,点个赞,这样您就可以持续收到《JAVA架构师之路》的最新文章了。文章内容属于自己的一点点心得,难免有不对的地方,欢迎在下方评论区探讨,你们的关注是我创作优质文章的动力。

来源:https://www.icode9.com/content-1-787051.html

(0)

相关推荐

  • 模板方法模式

    一.模板方法模式介绍 1.定义与类型 定义:定义了一个算法的骨架,并允许子类为一个或多个步骤提供实现 模板方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤 类型:行为型 2.适用场景 ...

  • 快速掌握模板方法模式

    概述 模板模式就是定义一个操作中的算法骨架,然后将一些步骤延迟到子类中.模板方法使得子类在不改变算法的结构即可重定义该算法的某些步骤. 使用场景 泡茶 我们都知道泡茶基本步骤有: 烧水.选茶叶.泡茶. ...

  • 创建型设计模式--工厂模式、抽象工厂模式

    一.小案例分析 1.功能需求: 实现一个发送信息的功能,要便于扩展与维护. (1)发送信息的工具有很多,比如短信.微信.邮件.QQ等. (2)选择某个工具进行信息发送. 2.小菜鸡去实现: (1)定义 ...

  • 通俗易懂系列 | 设计模式(三):适配器模式

    今天看了部特工电影,里面有个桥段,主角在直升机上和反派生死搏斗,而飞机则是无人驾驶的状态,有坠毁的危险.生死存亡,危急时刻主角让团队成员去驾驶,而团队成员很慌张地说:"Hey, man,你开 ...

  • 无废话设计模式(12)行为型模式--模板方法模式

    0-前言 模板方法模式定义:定义一个操作中的算法骨架,而将一些步骤延迟到子类中: 模板方法模式使得子类可以不改变一个算法的结构即可重新定义该算法的某些步骤: 1-实现 1-1.简单UML图:  1-2 ...

  • 图解Java设计模式之模板模式

    豆浆制作问题 模板方法模式基本介绍 模板方法模式原理类图 模板方法模式解决豆浆制作问题 模板方法模式的钩子方法 模板方法模式在Spring框架中的源码分析 模板方法模式的注意事项和细节 豆浆制作问题 ...

  • 设计模式-行为型-模板模式

    模板模式(Template): 提到模板,可能大多数人想到的是"简历模板"."论文模板"等,比如我们要写简历时,会从网上下载一份漂亮的简历模板,其格式是固定的, ...

  • 详解JAVA面向对象的设计模式 (七)、装饰模式

    装饰模式 Decorator 装饰模式比较简单,我就不单独写实现例子了.参考设计图去实现不是什么问题.建议可以写一写找找感觉. 在现实生活中,常常需要对现有产品增加新的功能或美化其外观,如房子装修.相 ...

  • TemplateMethodPattern模板方法模式

    模板方法模式 1.定义 定义一个操作中的算法的框架,而将一些步骤的实现延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤. 使用模板方法模式制造两款汽车.定义汽车必须有的特质 ...

  • 每天学习一个设计模式(一):结构型之适配器模式

    一.基本概念 适配器模式是将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的的类的兼容性问题. 二.通俗解释 ADAPTER 适配器模式:在朋友聚会上碰到了一个美女Sar ...