模板方法模式

利用上下班交通工具的不同来实现该模式

/**
 * TODO 上班模板
 * goWork和backWork是上下班模板方法,大多数人都是以这种方式上下班的,
 * 但是也有例外,所以子类可以重写。
 * 而怎么去上班基本上都不一样(公交,地铁,自驾,步行,自行车等),所以抽象出来。
 * 然后work方法就是:聚集整套流程
 * @author kakaluote
 * @date 2021年6月9日 上午8:56:37
 */
public abstract class GotoWorkTemplate {

	public void goWork(){
		System.out.println("早晨起床准备上班");
	}
	public void backWork(){
		System.out.println("晚上忙完下班");
	}
	
	public abstract void howGoWork();
	
	public void work(){
		goWork();
		howGoWork();
		backWork();
	}
}
public class XiaoMingWork extends GotoWorkTemplate{

	@Override
	public void howGoWork() {
		
		System.out.println("小明骑电动车上班");
	}
	public static void main(String[] args) {
		
		GotoWorkTemplate template = new XiaoMingWork();
		template.work();
	}
}
public class XiaoHongWork extends GotoWorkTemplate{

	@Override
	public void goWork() {
		System.out.println("昨晚小红加班到很晚,所以就在单位留宿了,"
				+ "因此早上直接就可以去上班,不存在起床一说,故而重写。");
	}

	@Override
	public void howGoWork() {
		System.out.println("小红走路去上班。");
	}
	
	public static void main(String[] args) {
		GotoWorkTemplate template = new XiaoHongWork();
		template.work();
	}
}
原文地址:https://www.cnblogs.com/kaka-qiqi/p/14865460.html