赞
踩
模板方法(Template Method)模式的定义如下:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。它是一种类行为型模式。
该模式的主要优点如下。
该模式的主要缺点如下。
JDBC的抽象和对Hibernate的集成,都采用了一种理念或者处理方式,那就是模板方法模式与相应的Callback接口相结合。
TestPaper
- /**
- * @Author l'amour solitaire
- * @Description 试卷
- * @Date 2020/11/20 下午5:16
- **/
- public abstract class TestPaper {
-
- /**
- * 第一题打印错了,已经给出了答案,此题可答可不答
- **/
- public void question1() {
- System.out.println("0.26的计数单位是( " + answer1() + " )");
- System.out.println("A:0.1 B:0.01 C:0.001");
- }
-
- /**
- * 第二题
- **/
- public void question2() {
- System.out.println("4千克30克=( " + answer2() + ")千克");
- System.out.println("A:4.3 B:4.03 C:4.003");
- }
-
- public final String answer1() {
- return "B";
- }
-
- public abstract String answer2();
- }

TestPaperA
- /**
- * @Author l'amour solitaire
- * @Description 试卷A
- * @Date 2020/11/20 下午5:36
- **/
- public class TestPaperA extends TestPaper{
-
- @Override
- public String answer2() {
- return "A";
- }
- }
TestPaperB
- /**
- * @Author l'amour solitaire
- * @Description 试卷B
- * @Date 2020/11/20 下午5:36
- **/
- public class TestPaperB extends TestPaper{
-
- @Override
- public String answer2() {
- return "B";
- }
- }
- @SpringBootTest
- class DesignApplicationTests {
-
- @Test
- void test() {
- TestPaper testPaper = new TestPaperA();
- testPaper.question1();
- testPaper.question2();
- testPaper = new TestPaperB();
- testPaper.question1();
- testPaper.question2();
- }
-
- }
欢迎关注公众号《JAVA拾贝》回复: 设计模式 即可获取
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。