• 模板方法模式


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

    当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时,我们通常考虑用模板方法模式来处理。

    模板方法模式是通过把不变行为搬移到父类,去除子类中的重复代码。

    TestPager.java类

    package template;
    /**
     * 把不变的行为搬到父类,去除子类重复的代码
     * @author 煞笔
     *
     */
    public abstract class TestPager {
        public void testQuestion1(){
            System.out.println("1+2="+answer1());
            
        }
        public void testQuestion2(){
            System.out.println("3+2="+answer2());
            
        }
        public void testQuestion3(){
            System.out.println("5+2="+answer3());
            
        }
        public abstract int answer1();
        public abstract int answer2();
        public abstract int answer3();
    }

    TestPagerA.java类

    package template;
    
    public class TestPagerA extends TestPager {
    
        @Override
        public int answer1() {
            return 3;
        }
    
        @Override
        public int answer2() {
            return 5;
        }
    
        @Override
        public int answer3() {
            return 7;
        }
    
    }

    TestPagerB.java类

    package template;
    
    public class TestPagerB extends TestPager {
    
        @Override
        public int answer1() {
            return 3;
        }
    
        @Override
        public int answer2() {
            return 5;
        }
    
        @Override
        public int answer3() {
            return 6;
        }
    
    }

    Business.java类

    package template;
    
    public class Business {
    
        public static void main(String[] args) {
            TestPager tp = new TestPagerA();
            tp.testQuestion1();
            tp.testQuestion2();
            tp.testQuestion3();
            tp = new TestPagerB();
            tp.testQuestion1();
            tp.testQuestion2();
            tp.testQuestion3();
        }
    
    }
  • 相关阅读:
    springmvc 与 springfox-swagger2整合
    [转]TensorFlow如何进行时序预测
    CORSFilter
    [转]完美解决)Tomcat启动提示At least one JAR was scanned for TLDs yet contained no TLDs
    基础开发平台要求
    ssm配置
    mysql重置root密码,并设置可远程访问
    angularjs写日期组件
    看angularjs项目的一些知识记录
    AngularJS 指令的 Scope (作用域)
  • 原文地址:https://www.cnblogs.com/ccgjava/p/7062976.html
Copyright © 2020-2023  润新知