设计模式一模板方法模式
欢迎光临我的博客[http://poetize.cn],前端使用Vue2,聊天室使用Vue3,后台使用Spring Boot
概述
定义一个操作中算法的骨架,而将这些步骤延迟到子类中,
模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。
不变部分的算法封装到父类中实现,而把可变部分算法由子类继承实现,便于子类继续扩展。
抽象类(Abstract Class):
负责给出一个算法的轮廓和骨架。它由一个模板方法和若干个基本方法构成。这些方法的定义如下。
① 模板方法:定义了算法的骨架,按某种顺序调用其包含的基本方法。
② 基本方法:是整个算法中的一个步骤,包含以下几种类型。
抽象方法:在抽象类中申明,由具体子类实现。
具体方法:在抽象类中已经实现,在具体子类中可以继承或重写它。
钩子方法:在抽象类中已经实现,包括用于判断的逻辑方法和需要子类重写的空方法两种。
具体子类(Concrete Class):
实现抽象类中所定义的抽象方法和钩子方法,它们是一个顶级逻辑的一个组成步骤。
1 public class Template { 2 public static void main(String[] args) { 3 tem t = new T(); 4 t.temp(); 5 } 6 } 7 8 abstract class tem { 9 //抽象方法和具体方法 10 public abstract void a(); 11 12 public void b() { 13 System.out.println("第一"); 14 } 15 16 public void c() { 17 System.out.println("第二"); 18 } 19 20 public void d() { 21 System.out.println("第三"); 22 } 23 24 //模板方法 25 public void temp() { 26 a(); 27 b(); 28 c(); 29 d(); 30 } 31 } 32 33 class T extends tem { 34 @Override 35 public void a() { 36 System.out.println("老大"); 37 } 38 }