模板方法模式(Template Method)
作者:互联网
解释一下模板方法模式,就是指:一个抽象类中,有一个主方法,再定义1...n个方法,可以是抽象的,也可以是实际的方法,定义一个类,继承该抽象类,重写抽象方法,通过调用抽象类,实现对子类的调用
模板类的创建
/**
*
* 这是我们创建的一个模板类
*
* 举例:1.做任何事都开始的准备阶段(step1)
* 2.准备完成后,都要实施,不同的事情不同的实施方法(step2和step4),
* 所以将实施阶段的操作留给用户自己实现。(step3模板提供)
* 3.完成后庆功(step5)
* ---------------------------------------------------------------------------------
* 按照传统方式,用户需要自己定义runApp的方法,
* 但在模板方法模式中,模板定义,用户只需要实现step2和step4的方法,并调用模板中的runApp即可,简化用户开发
*
*/
public abstract class TemplateM {
public boolean isRunStep2;
private void step1() {
System.out.println("这是模板提供的步骤一");
}
private void step3() {
System.out.println("这是模板提供的步骤三");
}
private void step5() {
System.out.println("这是模板提供的步骤五");
}
public abstract void step2();
public abstract void step4();
public void runApp() {
step1();
if (isRunStep2) {
step2();
step3();
} else {
step4();
}
step5();
}
}
用户重写模板类中的方法 并调用模板
public class Dosthing extends TemplateM {
//重写step2方法
@Override
public void step2() {
System.out.println("用户实现了step2");
}
//重写step4方法
@Override
public void step4() {
System.out.println("用户实现了step4");
}
//调用runApp方法
public static void main(String[] args) {
TemplateM tm = new Dosthing();
//isRunStep2 设置为true时走step2方法
tm.isRunStep2 = true;
tm.runApp();
System.out.println("----------------------");
//isRunStep2 设置为false时走step4方法
tm.isRunStep2 = false;
tm.runApp();
}
}
运行结果
标签:void,public,step4,step2,Template,方法,Method,模板 来源: https://www.cnblogs.com/love-xk/p/13150458.html