模板方法模式

我理解的--java模板方法模式

时光总嘲笑我的痴心妄想 提交于 2019-12-06 06:45:07
从语言层次的角度只是单纯的抽象类的实现,在抽象类中哪些方法是抽象的,哪些需要子类实现,就需要业务上的要求了。使框架的分工更清晰,哪些人做哪些工作(架构师构造框架不可变、算法师实现算法可变),此模板简单而常用。 抽象方法 :需要子类实现的,不同的子类提供了不同的实现功能。(可变) 模版方法 :定义了主逻辑功能,里面用抽象方法来实现不同的功能。 (不可变) 抽象类 public abstract class Template { abstract void sort(int[] arr); void printArray(int[] arr) { sort(arr); for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } } 具体实现子类:实现抽象类,不同的子类用不同的方法实现。 class TemplateImp extends Template { @Override void sort(int[] arr) { for (int i = 0; i < arr.length-1; i++) { for(int j = i; j < arr.length-1; j++){ if (arr[i] > arr[j + 1]) { int t; t = arr[i]; arr[i] = arr[j +