模板方法模式

模板方法模式是指仅定义一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

模板方法模式示例

以考试写卷子需求为例,下面演示模板方法模式的代码结构。

TestPaper.java

public abstract class TestPaper {
    public void questionA() {
        System.out.println("问题1");
        System.out.println("答案" + answerA());
    }

    public void questionB() {
        System.out.println("问题2");
        System.out.println("答案" + answerB());
    }

    public abstract String answerA();

    public abstract String answerB();
}

TestPaperA.java

public class TestPaperA extends TestPaper {
    @Override
    public String answerA() {
        return "a";
    }

    @Override
    public String answerB() {
        return "b";
    }
}

TestPaperB.java

public class TestPaperB extends TestPaper {
    @Override
    public String answerA() {
        return "c";
    }

    @Override
    public String answerB() {
        return "a";
    }
}

Main.java

public class Main {
    public static void main(String[] args) {
        TestPaper testPaperA = new TestPaperA();
        testPaperA.questionA();
        testPaperA.questionB();

        TestPaper testPaperB = new TestPaperB();
        testPaperB.questionA();
        testPaperB.questionB();
    }
}

上述代码中,我们通过抽象类定义了一个算法流程的框架,然后通过两个抽象方法将一些步骤留给了子类去实现,这就是典型的模板方法模式。

作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。
Copyright © 2017-2024 Gacfox All Rights Reserved.
Build with NextJS | Sitemap