第10章《模版方法模式》

前端之家收集整理的这篇文章主要介绍了第10章《模版方法模式》前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。重定义操作通过覆写模版方法里面的抽象方法而实现。

去除子类中的重复代码

方法模式提供了一个很好的代码复用平台。

方法模式处理。

/**

  • @Author: cxh

  • @CreateTime: 18/1/7 19:27

  • @ProjectName: JavaBaseTest
    */
    public class Client{
    public static void main(String[] args) {
    //A试卷
    System.out.println("A试卷信息:");
    PaperA a=new PaperA();
    a.templateMethod();

     //B试卷
     System.out.println("B试卷信息:");
     PaperB b=new PaperB();
     b.templateMethod();

    }
    }



/**

  • @Author: cxh

  • @CreateTime: 18/1/7 19:15

  • @ProjectName: JavaBaseTest
    */
    public abstract class AbstractPaper {
    //三个抽象行为,作为逻辑骨架的组合内容.
    public abstract void primitiveOperation1();
    public abstract void primitiveOperation2();
    public abstract void primitiveOperation3();

    //逻辑框架1,组合了1,2,3抽象行为
    public void templateMethod(){
    primitiveOperation1();
    primitiveOperation2();
    primitiveOperation3();
    }
    }



/**

  • @Author: cxh

  • @CreateTime: 18/1/7 19:20

  • @ProjectName: JavaBaseTest
    */
    public class PaperA extends AbstractPaper {
    @Override
    public void primitiveOperation1() {
    System.out.println("第一题答案是:A");
    }

    @Override
    public void primitiveOperation2() {
    System.out.println("第二题答案是:B");
    }

    @Override
    public void primitiveOperation3() {
    System.out.println("第三题答案是:E");
    }
    }



/**

  • @Author: cxh

  • @CreateTime: 18/1/7 19:26

  • @ProjectName: JavaBaseTest
    */
    public class PaperB extends AbstractPaper {
    @Override
    public void primitiveOperation1() {
    System.out.println("第一题答案是:B");
    }

    @Override
    public void primitiveOperation2() {
    System.out.println("第二题答案是:C");
    }

    @Override
    public void primitiveOperation3() {
    System.out.println("第三题答案是:D");
    }
    }

猜你在找的设计模式相关文章