*/
protected abstract void closeAC();
/**
*/
public final void excet(){
//启动发动机
this.startEngine();
//关闭发动机
this.shutDownEngine();
//开启空调
this.openAC();
//关闭空调
this.closeAC();
}
}
有了模板,接下来创建几个集成这个抽象类模板的类,也就是所谓的不同的车:
第一辆车,
/**
-
@Author : JCccc
-
@CreateTime : 2019-1-14
-
@Description :
-
@Point: Keep a good mood
**/
public class Audi extends VehicleControlModel {
@Override
protected void startEngine() {
System.out.println(“奥迪 启动发动机”);
}
@Override
protected void shutDownEngine() {
System.out.println(“奥迪 关闭发动机”);
}
@Override
protected void openAC() {
System.out.println(“奥迪 空调开启”);
}
@Override
protected void closeAC() {
System.out.println(“奥迪 空调关闭”);
}
}
第二辆车:
/**
-
@Author : JCccc
-
@CreateTime : 2019-1-14
-
@Description :
-
@Point: Keep a good mood
**/
public class BMW extends VehicleControlModel {
@Override
protected void startEngine()
【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 开源分享
{
System.out.println("宝马 启动发动机 ");
}
@Override
protected void shutDownEngine() {
System.out.println("宝马 关闭发动机 ");
}
@Override
protected void openAC() {
System.out.println(“宝马 空调开启”);
}
@Override
protected void closeAC() {
System.out.println(“宝马 空调关闭”);
}
}
第三辆车:
/**
-
@Author : JCccc
-
@CreateTime : 2019-1-14
-
@Description :
-
@Point: Keep a good mood
**/
public class Yamaha extends VehicleControlModel{
@Override
protected void startEngine() {
System.out.println(“雅马哈 启动发动机”);
}
@Override
protected void shutDownEngine() {
System.out.println(“雅马哈 关闭发动机”);
}
@Override
protected void openAC() {
System.out.println(“雅马哈 空调开启”);
}
@Override
protected void closeAC() {
System.out.println(“雅马哈 空调关闭”);
}
}
好了,模板模式大体已经完成了。可以看到,我们先是根据不同车都能进行远程控制这个一个特性,抽离出来,建了一个抽象类(也就是指令控制模板);然后再是创建不同的车对应类去继承该模板,然后重写模板里面的方法。
可能到此,你可能还是没有发现这个模板模式有啥好的,那么我们继续看看怎么调用:
我们创建一个测试类,ControlClient.java :
/**
-
@Author : JCccc
-
@CreateTime : 2019-1-14
-
@Description :