1、什么是模板方法模式算法
Template Method模式也叫模板方法模式,是 行为模式之一,它把具备特定步骤算法中的某些 必要的处理委让给抽象方法,经过子类继承对抽 象方法的不一样实现改变整个算法的行为。测试
2、模板方法模式的应用场景this
Template Method模式通常应用在具备如下条件 的应用中:spa
- 具备统一的操做步骤或操做过程code
- 具备不一样的操做细节blog
- 存在多个具备一样操做步骤的应用场景,但某些具体的操做细节却各不相同继承
3、模板方法模式的结构模板
4、模板方法模式的角色和职责class
AbstractClass: 抽象类的父类方法
ConcreteClass: 具体的实现子类
templateMethod(): 模板方法
method1()与method2(): 具体步骤方法
作车
1 /* 2 * 组装车 3 */ 4 public abstract class MakeCar { 5 //组装车头 6 public abstract void makeHead(); 7 8 //组装车身 9 public abstract void makeBody(); 10 11 //组装车尾 12 public abstract void makeTail(); 13 14 public void make() { 15 this.makeHead(); 16 this.makeBody(); 17 this.makeTail(); 18 } 19 }
作公交车
1 //作公交车 2 public class MakeBus extends MakeCar { 3 4 public void makeBody() { 5 System.out.println("bus:组装车身"); 6 } 7 8 public void makeHead() { 9 System.out.println("bus:组装车头"); 10 } 11 12 public void makeTail() { 13 System.out.println("bus:组装车尾"); 14 } 15 }
组装Jeep车
1 //组装Jeep车 2 public class MakeJeep extends MakeCar { 3 4 public void makeBody() { 5 System.out.println("jeep:组装车身"); 6 } 7 8 public void makeHead() { 9 System.out.println("jeep:组装车头"); 10 } 11 12 public void makeTail() { 13 System.out.println("jeep:组装车尾"); 14 } 15 }
作卡车
1 //作卡车 2 public class MakeKa extends MakeCar { 3 4 public void makeBody() { 5 System.out.println("ka:组装车身"); 6 } 7 8 public void makeHead() { 9 System.out.println("ka:组装车头"); 10 } 11 12 public void makeTail() { 13 System.out.println("ka:组装车尾"); 14 } 15 }
测试
1 public class MainClass { 2 public static void main(String[] args) { 3 MakeCar bus = new MakeBus(); 4 // bus.makeHead(); 5 // bus.makeBody(); 6 // bus.makeTail(); 7 bus.make(); 8 9 System.out.println("-------------------"); 10 11 MakeCar jeep = new MakeJeep(); 12 // jeep.makeHead(); 13 // jeep.makeBody(); 14 // jeep.makeTail(); 15 jeep.make(); 16 17 System.out.println("-------------------"); 18 19 MakeCar ka = new MakeKa(); 20 ka.make(); 21 } 22 }