利用上下班交通工具的不同来实现该模式
/**
* 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();
}
}