模板方法模式
定义
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。
当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时,我们通常考虑模板方法模式来处理。
模板方法模式将不变的行为放到父类中,去除子类中的重复代码。
UML图
用例
试卷父类
class TestPaper{
public void testQuestion1(){
System.out.println("题目1");
System.out.println(answer1());
}
protected abstract String answer1(){
return "";
}
...
}
试卷子类
class TestPaperA extends TestPaper(){
@override
protected String answer1(){
return "B";
}
...
}
class TestPaperB extends TestPaper(){
@override
protected String answer1(){
return "A";
}
...
}
客户端
static void Main(String[] args){
System.out.println("学生甲的试卷:");
TestPaper studentA = new TestPaper();
studentA.testQuestion1();
...
System.out.println("学生乙的试卷:");
TestPaper studentB = new TestPaper();
studentB.testQuestion1();
...
}