模板方法模式:
顾名思义,模板方法就是造一个模板,比如:
1、生活中写简历,我们可能会问同学,有没有简历模板呀,借我看一下,我们拿到模板只要按照我们个人情况往上加就行了;
2、再比如语文答题,老师可能会说这种题答题都是有模板的,先答什么,再答什么,里面的内容根据题意往上加就行了
可见,不管是生活中还是程序中,有些东西的组成部分,执行顺序是比较复杂,难记的,要是给个模板就简单很多了 。所以,模板方法模式由此而来 。
举个栗子:
文章插图
我们要采访一个人,让他叙述一下他的饮食情况,并给他一个模板:
public abstract class Diet {protected abstract Boolean needBreakfast();protected abstract String breakfast();protected abstract String lunch();protected abstract String dinner();protected void onesDiet() {System.out.println("大家好,我来讲讲我的饮食情况,");if (needBreakfast()) { //还可以使用钩子函数控制模板的执行System.out.println("我早饭吃的是" + breakfast());}System.out.println("我中饭吃的是" + lunch());System.out.println("我晚饭吃的是" + dinner());System.out.println("嗯,就这些!");}}
被采访者只需定义早中晚饭吃什么,就能输出饮食情况了 。比如说jack
public class JackDiet extends Diet {@Overrideprotected Boolean needBreakfast() {return true;}@Overrideprotected String breakfast() {return "玉米";}@Overrideprotected String lunch() {return "米饭";}@Overrideprotected String dinner() {return "水果";}}
public class Main {public static void main(String[] args) {Diet diet = new JackDiet();diet.onesDiet();}}
文章插图
【Template模板方法】输出:
相比要说一大堆话,我们只要用户说出关键词就行了,其余的交给模板处理 。简单了很多,采访下一个人也是如此 。
总结:
通过上面的例子我们知道,模板方法的用途就和我们生活中所说的模板是一样的,针对顺序,组成复杂,且差异性大的事物,我们给用户提供一个模板,是会大大降低开发,使用难度的 。
源码中使用模板方法的地方有:
- 蝴蝶梅种植方法?
- 姬月季的养殖方法
- 莴笋种子种植时间和方法?
- 8个顶级React.js免费模板
- X-VLM:多粒度视觉语言预训练方法
- Linux开机挂载共享文件夹的方法
- 职场老油条分享超过三种企业邮箱登录方法,让你不加班
- 通识强化学习,初步了解强化学习的运行规则和估值方法
- 通过指数衰减的方法设置[优化神经网络损失函数的]学习率
- 银耳正确泡发方法