设计模式(七):模板方法模式

来源:互联网 发布:js select 不选中 编辑:程序博客网 时间:2024/06/10 10:09

模板方法模式结构图:


例子:

1、定义模板方法类

/** * AbastractClass模板方法 */public abstract class Question {    //问题1    public void questionOne(){        System.out.println("问题1:1+1=?");        System.out.println("答案是:"+this.answerOne());    }    //问题2    public void questionTwo(){        System.out.println("问题2:2+2=?");        System.out.println("答案是:"+this.answerTwo());    }    //问题1的答案,抽象方法,具体实现交给子类    public abstract String answerOne();    //问题2的答案,抽象方法,具体实现交给子类    public abstract String answerTwo();}


2、具体实现类

/** * ConcreteClass */public class AnswerOne extends Question{    public String answerOne() {        return "2";    }    public String answerTwo() {        return "4";    }}

public class AnswerTwo extends Question{    public String answerOne() {        return "2";    }    public String answerTwo() {        return "4";    }}

3.测试

public class Test {    public static void main(String[] args) {        System.out.println("--------答卷1的内容--------");        Question questionOne=new AnswerOne();        questionOne.questionOne();        questionOne.questionTwo();        System.out.println("--------答卷2的内容--------");        Question questionTwo=new AnswerTwo();        questionTwo.questionOne();        questionTwo.questionTwo();    }}


输出:


--------答卷1的内容--------问题1:1+1=?答案是:2问题2:2+2=?答案是:4--------答卷2的内容--------问题1:1+1=?答案是:2问题2:2+2=?答案是:4


来自:大话设计模式



原创粉丝点击