Java 设计模式 Template Method 模板方法 模式
Template Method模式用于在父类中定义处理流程的框架,在子类中实现具体处理。有点是由于在父类的模板方法里编写了算法,因此无需在每个子类中再编写算法。
涉及到的角色
- 抽象类:负责实现模板方法,定义模板方法中所使用到的抽象方法。
- 具体类:负责实现抽象类角色定义的抽象方法
/**
* 抽象类
* @author 托马斯小火车喷雾又喷烟
*
*/
public abstract class TeacherLecture {
public abstract void begin();
public abstract void lecture();
public abstract void end();
public final void doLecture() {
begin();
lecture();
end();
}
}
/**
* 具体类
* @author 托马斯小火车喷雾又喷烟
*
*/
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("语文课结束啦。");
}
}
/**
* 具体类
* @author 托马斯小火车喷雾又喷烟
*
*/
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("英语课结束啦。");
}
}
/**
*
* @author 托马斯小火车喷雾又喷烟
*
*/
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 ......
英语课结束啦。
该博客介绍了Java设计模式中的TemplateMethod模板方法模式,它允许在父类中定义处理流程框架,子类只需实现具体的处理步骤。通过一个抽象类TeacherLecture定义教学流程,包括开始、授课和结束三个步骤,然后分别由ChineseTeacher和EnglishTeacher两个具体类实现各自的教学内容。这种方式提高了代码复用性和可扩展性。
334

被折叠的 条评论
为什么被折叠?



