类型:行为模式
模板方法模式定义一个操作中算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
【模板方法模式UML图】
【模板方法模式-JAVA代码实现】
新建赛车的父类:
package car_package;
public class car_parent {
private int speed;
public int getSpeed() {
return speed;
}
public void setSpeed(int speed) {
this.speed = speed;
}
public void print_speed() {
System.out.println("将速度" + this.getSpeed() + "取出来!");
}
}
新建红色仪表盘的赛车实现类:
package car_imple;
import car_package.car_parent;
public class car_imple_red extends car_parent {
@Override
public void print_speed() {
super.print_speed();
System.out.println("将速度" + this.getSpeed() + "用红色的仪表盘显示车的速度");
}
}
新建蓝色仪表盘的赛车实现类:
package car_imple;
import car_package.car_parent;
public class car_imple_blue extends car_parent {
@Override
public void print_speed() {
super.print_speed();
System.out.println("将速度" + this.getSpeed() + "用蓝色的仪表盘显示车的速度");
}
}
新建客户端运行类:
package run_main;
import car_imple.car_imple_blue;
import car_imple.car_imple_red;
import car_package.car_parent;
public class run_main {
public static void main(String[] args) {
car_parent car_ref_red = new car_imple_red();
car_ref_red.setSpeed(300);
car_ref_red.print_speed();
car_parent car_ref_blue = new car_imple_blue();
car_ref_blue.setSpeed(400);
car_ref_blue.print_speed();
}
}
程序运行结果如下:
将速度300取出来!
将速度300用红色的仪表盘显示车的速度
将速度400取出来!
将速度400用蓝色的仪表盘显示车的速度
这就是模板方法模式,一个最常用,最容易理解的一个模式,将相同的功能抽象出来成一个父类,然后用子类做不同功能的实现
分享到:
相关推荐
23个设计模式之一的模板模式,极客学院PPT源码及课件,模板模式的示例,
java设计模式之模板模式,实例子说明模板模式的使用场景。
走进设计模式之—— Template(模板模式)
复用和扩展是模板模式的两大作用,实际上,还有另外一个技术概念,也能起到跟模板模式相同的作用,那就是回调(Callback)。A 类事先注册某个函数 F 到 B类
java模式--模板模式实例代码,请参考我的博客:http://blog.csdn.net/yayun0516
策略模式与模板模式的区别 - Eviltuzki的个人页面 - OSCHINA - 中文开源技术交流社区.mht
java设计模式中的模板模式,纯Java代码
策略模式结合模板方法模式的设计思路 策略模式结合模板方法模式是策略模式的一种变形,目的是为了解决策略模式中的一些共性问题。在策略模式中,经常会出现这样一种情况,就是发现这一系列算法的实现上存在公共功能...
模板模式的定义 模板模式的结构 模板模式的角色 模板模式的方法 模板模式的优点 模板模式的案例
设计模式 java 模板模式
设计模式专题之(十三)模板模式---设计模式模板模式示例代码(python--c++)
NULL 博文链接:https://dada-fangfang.iteye.com/blog/1018674
设计模式之模板方法模式
模板方法模式的示例代码和文档,学习模板方法模式的参考资料。
模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。
NULL 博文链接:https://bingyingao.iteye.com/blog/1264824
设计模式之策略模式与模板模式
设计模式之策略模式与模板模式.pptx
NULL 博文链接:https://gutou9.iteye.com/blog/286812