Template Method Posted on 2020-05-21 Edited on 2025-02-13 In Design Patterns Template Method 定义定义一个操作中的算法的骨架将一些步骤延迟到子类中子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤核心思想父类定义骨架 骨架一般声明为final 子类实现(某些)细节 需要子类实现的一般声明为protected 栗子找到数组中最大的元素1234567891011121314package eternal.fire;public abstract class TemplateMethod { //找出数组中最大的元素 public final int findMax(int[] nums) { //排序 sort(nums); //返回最后的元素 return nums[nums.length - 1]; } //这个sort怎么写,暂时还没想好,所以留给子类去实现 protected abstract void sort(int[] nums);} 12345678910package eternal.fire;import java.util.Arrays;public class Max extends TemplateMethod { @Override protected void sort(int[] nums) { Arrays.sort(nums); }} 12345678910package eternal.fire;public class Main { public static void main(String[] args) { int[] nums = new int[]{1, 8, 1, 3, 0, 5, 0, 0, 2, 1, 8}; Max max = new Max(); int m = max.findMax(nums); System.out.println(m); }}