做网站支付系统难度,wordpress homepage plugin,视频app推广,wordpress机械模板下载一、模板模式介绍
模板方法模式#xff08;Template Method Pattern#xff09;#xff0c;又叫模板模式#xff08;Template Pattern#xff09;#xff0c; 在一个抽象类公开定义了执行它的方法的模板。它的子类可以更需要重写方法实现#xff0c;但可以成为典型类中…一、模板模式介绍
模板方法模式Template Method Pattern又叫模板模式Template Pattern 在一个抽象类公开定义了执行它的方法的模板。它的子类可以更需要重写方法实现但可以成为典型类中定义的方式进行。
模板模式适用于通用步骤的操作比如做菜不管你是西红柿炒鸡蛋还是土豆炖牛肉实现步骤都是一样的备料做菜上菜。 再比如投放系统不管你是投放巨量引擎广点通还是百度前期工作实现步骤也都是一样的配置物料信息构建投放对象投放广告。
二、代码实例
1、DishTemplate抽象类 package com.xu.demo.templatePattern;/*** 做菜模板类* 用于定义做菜的执行步骤所有菜都可以按照这种方式做菜**/
public abstract class DishTemplate {/*** 做菜执行步骤*/public final void doDish() {this.preparation();this.doing();this.carriedDishes();}/*** 备料*/public abstract void preparation();/*** 做菜*/public abstract void doing();/*** 上菜*/public abstract void carriedDishes();} 2、DishEggsWithTomato子类 package com.xu.demo.templatePattern;/*** 西红柿炒鸡蛋**/
public class DishEggsWithTomato extends DishTemplate {Overridepublic void preparation() {System.out.println(准备西红柿鸡蛋...);}Overridepublic void doing() {System.out.println(开始炒西红柿鸡蛋...);}Overridepublic void carriedDishes() {System.out.println(西红柿鸡蛋装盘...);}
}
3、DishOnionWithTofu子类 package com.xu.demo.templatePattern;/*** 小葱拌豆腐**/
public class DishOnionWithTofu extends DishTemplate {Overridepublic void preparation() {System.out.println(准备小葱豆腐...);}Overridepublic void doing() {System.out.println(开始炒小葱拌豆腐...);}Overridepublic void carriedDishes() {System.out.println(小葱拌豆腐装盘...);}
}
4、TempaltePattern类 package com.xu.demo.templatePattern;/*** 模板模式* 抽象父类定义方法模板子类自定义实现方式。**/
public class TempaltePattern {public static void main(String[] args) {System.out.println(----------西红柿炒鸡蛋----------);DishTemplate eggsWithTomato new DishEggsWithTomato();eggsWithTomato.doDish();System.out.println(----------小葱拌豆腐----------);DishTemplate onionWithTofu new DishOnionWithTofu();onionWithTofu.doDish();}
}运行结果 三、Spring中的模板模式
1、RestTemplate