1 模板方法模式即为将共同的方法提炼出来,针对不同的情况,将涉及到的具体的方法交给子类去执行。 如下例子,考题是共有的,每一个人有不同的答案,书写答案方法在考题中定义为一个抽象方法。交个不同子类去执行。 定义一个抽象类,将子类共同的向上实现共有。
public abstract class AbstractTest { private String name; public void textQuestion01(){ System.out.println("第一道题。。。"); System.out.println(name+" 第一题答案:"+answer01()); } public void textQuestion02(){ System.out.println("第二道题。。。"); System.out.println(name+" 第二题答案:"+answer02()); } public abstract String answer01(); public abstract String answer02(); public String getName() { return name; } public void setName(String name) { this.name = name; } }不同的情况实现不同的答案方法。
public class TextPaperA extends AbstractTest { @Override public String answer01() { // TODO Auto-generated method stub return "A"; } @Override public String answer02() { // TODO Auto-generated method stub return "B"; } } public class TextPaperB extends AbstractTest { @Override public String answer01() { // TODO Auto-generated method stub return "B"; } @Override public String answer02() { // TODO Auto-generated method stub return "A"; } }测试:
public static void main(String[] args){ AbstractTest test01=new TextPaperA(); test01.setName("张三"); test01.textQuestion01(); test01.textQuestion02(); AbstractTest test02=new TextPaperB(); test02.setName("李四"); test02.textQuestion01(); test02.textQuestion02(); }参考《大话设计模式》。
