Java 设计模式 Template Method 模板方法 模式
Template Method模式用于在父类中定义处理流程的框架,在子类中实现具体处理。有点是由于在父类的模板方法里编写了算法,因此无需在每个子类中再编写算法。
涉及到的角色
- 抽象类:负责实现模板方法,定义模板方法中所使用到的抽象方法。
- 具体类:负责实现抽象类角色定义的抽象方法
public abstract class TeacherLecture {
public abstract void begin();
public abstract void lecture();
public abstract void end();
public final void doLecture() {
begin();
lecture();
end();
}
}
public class ChineseTeacher extends TeacherLecture {
@Override
public void begin() {
System.out.println("开始上语文课拉!");
}
@Override
public void lecture() {
System.out.println("从前有座山,山里有座庙......");
}
@Override
public void end() {
System.out.println("语文课结束啦。");
}
}
public class EnglishTeacher extends TeacherLecture {
@Override
public void begin() {
System.out.println("开始上英语课拉!");
}
@Override
public void lecture() {
System.out.println("I have a dream ......");
}
@Override
public void end() {
System.out.println("英语课结束啦。");
}
}
public class Main {
public static void main(String[] args) {
TeacherLecture chinese = new ChineseTeacher();
chinese.doLecture();
TeacherLecture english = new EnglishTeacher();
english.doLecture();
}
}
开始上语文课拉! 从前有座山,山里有座庙...... 语文课结束啦。 开始上英语课拉! I have a dream ...... 英语课结束啦。



