模板模式会定义通用架构,使用者只需要关心自己需要实现的功能即可,可以将固定的流程写到父类中去,不同的地方定义成抽象方法,让不同的子类去重写,这里以驾驶流程为例,代码如下:
//司机类
public abstract class Driver {
/**
* 驾驶流程
*/
public void driverProcess() {
System.out.println("开门...");
System.out.println("点火...");
driverStyle();
System.out.println("刹车...");
System.out.println("熄火...");
}
/**
* 驾驶方式
*/
public abstract void driverStyle();
}
//新手司机
public class NewDriver extends Driver{
/**
* 驾驶方式
*/
@Override
public void driverStyle() {
System.out.println("新手司机双手紧握方向盘....");
}
}
//老司机
public class OldDriver extends Driver{
/**
* 驾驶方式
*/
@Override
public void driverStyle() {
System.out.println("老司机一手抽着烟,一手抓着方向盘,丝毫不慌~");
}
}
//测试
public class DriverTest {
public static void main(String[] args) {
new OldDriver().driverProcess();
System.out.println("-------------");
new NewDriver().driverProcess();
}
}
最终打印如下: