首页 > 数据库 > 数据库开发技术 > 模板方法模式--我们一起下饺子


/*** 韭菜馅饺子*/public class LeekDumpling {/*** 做饺子*/public void makeDumpling() {// 擀面皮ganMianPi();// 包馅baoXian();// 水煮shuiZhu();// 出锅chuGuo();// 加基本调料jiaJiBenTiaoLiao();// 加其他调料jiaQiTaTiaoLiao();}// 擀面皮public void ganMianPi() {System.out.println("擀面皮");}// 包馅public void baoXian() {System.out.println("包韭菜馅");}// 水煮public void shuiZhu() {System.out.println("水煮8分钟");}// 出锅public void chuGuo() {System.out.println("出锅");}// 加基本调料public void jiaJiBenTiaoLiao() {System.out.println("加醋");}// 加其他调料public void jiaQiTaTiaoLiao() {}}
/*** 猪肉馅饺子*/publicclass PorkDumpling {/*** 做饺子*/public void makeDumpling() {// 擀面皮ganMianPi();// 包馅baoXian();// 水煮shuiZhu();// 出锅chuGuo();// 加基本调料jiaJiBenTiaoLiao();// 加其他调料jiaQiTaTiaoLiao();}// 擀面皮public void ganMianPi() {System.out.println("擀面皮");}// 包馅public void baoXian() {System.out.println("包猪肉馅");}// 水煮public void shuiZhu() {System.out.println("水煮10分钟");}// 出锅public void chuGuo() {System.out.println("出锅");}// 加基本调料public void jiaJiBenTiaoLiao() {System.out.println("加醋");}// 加其他调料public void jiaQiTaTiaoLiao() {System.out.println("加重辣");}}




public abstract class Dumpling {/*** 做饺子*/public final void makeDumpling() {// 擀面皮ganMianPi();// 包馅baoXian();// 水煮shuiZhu();// 出锅chuGuo();// 加基本调料jiaJiBenTiaoLiao();// 钩子hook();}/*** 擀面皮*/public void ganMianPi() {System.out.println("擀面皮");}/*** 包馅(抽象方法需要在子类中实现)*/public abstract void baoXian();/*** 水煮(抽象方法需要在子类中实现)*/public abstract void shuiZhu();/*** 出锅*/public void chuGuo() {System.out.println("出锅");}/*** 加基本调料*/public void jiaJiBenTiaoLiao() {System.out.println("加醋");}/*** 钩子(自定义扩展方法,默认实现为空)*/public void hook() {}}
/*** 韭菜馅饺子*/publicclass LeekDumpling extends Dumpling{/*** 包馅*/@Overridepublic void baoXian() {System.out.println("包韭菜馅");}/*** 水煮*/@Overridepublic void shuiZhu() {System.out.println("水煮8分钟");}}
/*** 猪肉馅饺子*/publicclass PorkDumpling extends Dumpling{/*** 包馅*/@Overridepublic void baoXian() {System.out.println("包猪肉馅");}/*** 水煮*/@Overridepublic void shuiZhu() {System.out.println("水煮10分钟");}/*** 覆盖hook()方法,加其他调料*/@Overridepublic void hook() {System.out.println("加重辣");}}
public class MakeDumpling {public static void main(String[] args) {// 制作韭菜馅饺子System.out.println("制作韭菜馅饺子");LeekDumpling leekDumpling = new LeekDumpling();leekDumpling.makeDumpling();System.out.println();// 制作猪肉馅饺子System.out.println("制作猪肉馅饺子");PorkDumpling porkDumpling = new PorkDumpling();porkDumpling.makeDumpling();}}
制作韭菜馅饺子擀面皮包韭菜馅水煮8分钟出锅加醋制作猪肉馅饺子擀面皮包猪肉馅水煮10分钟出锅加醋加重辣


原文作者:编程我也会;如有侵权,请联系管理员删除。