zoukankan      html  css  js  c++  java
  • 模板方法模式

    模板方式模式(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();
        }
    
    }
  • 相关阅读:
    P2731 骑马修栅栏 Riding the Fences
    P1351 联合权值
    [脚本]为所有节点挂载磁盘
    [转]expect的安装
    挂载磁盘linux
    [转]Mac 科研常用软件
    [转]error while loading shared libraries 错误解决办法总结
    linux安装SVN
    Java web项目在linux环境下自动编译和部署脚本
    个人所得税计算方法
  • 原文地址:https://www.cnblogs.com/ccgjava/p/7062976.html
Copyright © 2011-2022 走看看