文章目录 一、前言 二、代码 2.1 模板模式 2.2 模板模式+回调方法(加一层Restaurant类,Restaurant类方法中调用client模板方法) 2.3 回调方法、钩子方法、模板模式 2.3.1 彻底搞懂模板模式 2.3.2 彻底搞懂回调方法 2.3.3 彻底搞懂钩子方法 三、钩子方法的模拟和实际 3.1 钩子方法的模拟 3.1.1 钩子方法是啥 3.1.2 钩子的实现方法 3.2 钩子方法的实际 3.2.1 Runtime.getRuntime().addShutdownHook(shutdownHook); 3.2.2 编写个测试类 3.2.3 结论 四、尾声 一、前言 二、代码 2.1 模板模式 先看一个模板模式 /** * 模板方法模式:在一个方法中定义一个算法的骨架,而将一些步 * 骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情 * 况下,重新定义算法中的某些步骤。 * 【钩子方法】:原理就是实现为空的方法,在某任务之前、之后、 * 执行中、报异常后调用的方法(是不是有种熟悉的感觉)。 * 通常钩子方法是通过抽象类或是本类中的空方法来实现的。 * */ abstract class Client{ /** * 【模板方法】 */ public void templateMethod(){ before(