模板方法模式

模板方法模式

使用

当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时,我们通常考虑模板方法模式来处理。

模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到自雷中。模板方法使得自雷可以不改变一个算法的结构即可重新定义该算法的某些特定的步骤。

当不变的与可变的额行为在方法的子类实现中进行混合,可以将不变的行为搬到单一的地方帮住子类拜托重复的不变的行为的纠缠。

简单的说:就是执行固定的流程,中间步骤有差别,可以实现批量生产。

优势

提供了一个很好的代码复用平台。

简单说下:

在spring中的模板方法有JDBC连接。

  • 定义骨架 1.进行获取连接对象 、2.获取PreparedStatement 、3.参数封装、4.执行、5.返回结果
  • 不变的为1 3 4 5
  • 改变的为2,需要传入参数

我们模仿下一个考试答题的案例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public abstract class  TestEnglish {

//不变的行为
public void questuion1() {
System.out.println("选择题1: 1+1 = () ; A:1 B:2 C:3 D:4");
}

public void questuion2() {
System.out.println("选择题2: 1+2 = () ; A:1 B:2 C:3 D:4");
}


public void questuion3() {
System.out.println("选择题3: 1+3 = () ; A:1 B:2 C:3 D:4");
}

//改变的行为
public String answer1() {
return "";
}

}
1
2
3
4
5
6
7
8
9
public class StudentA extends TestEnglish {

@Override
public String answer1(){
questuion1();
return "a";

}
}
1
2
3
4
5
6
7
8
public class TestMain {

public static void main(String[] args) {
TestEnglish studentA = new StudentA();
String answer1 = studentA.answer1();
System.out.println(answer1);
}
}

本文标题:模板方法模式

文章作者:wsylp

发布时间:2020年06月07日 - 15:06

最后更新:2020年11月26日 - 20:11

原始链接:http://wsylp.github.io/2020/06/07/模板方法模式/

许可协议: 本文为 wsylp 版权所有 转载请保留原文链接及作者。

-------------本文结束感谢阅读-------------