模板方法模式
package com.life.design.template; public abstract class Cooking { public final void cookProcess() { pourOil(); heatOil(); pourVegetable(); pourSauce(); fry(); } public void pourOil() { System.out.println("倒油"); } public void heatOil() { System.out.println("热油"); } public abstract void pourVegetable(); public abstract void pourSauce(); public void fry() { System.out.println("翻炒"); } }
package com.life.design.template; public class CookCabbage extends Cooking { @Override public void pourVegetable() { System.out.println("包菜下锅"); } @Override public void pourSauce() { System.out.println("辣椒下锅"); } }
package com.life.design.template; public class Client { public static void main(String[] args) { Cooking cookCabbage = new CookCabbage(); cookCabbage.cookProcess(); } }