设计模式--模板方式模式

来源:互联网 发布:怎么查看端口是否打开 编辑:程序博客网 时间:2024/05/21 23:32

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();    }

参考《大话设计模式》。

原创粉丝点击