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

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

    <?php
    /**
    * Created by PhpStorm.
    * User: Administrator
    * Date: 2018/2/7
    * Time: 16:47
    */

    namespace frontendmodels;


    class TestPaper
    {

    public function TestQuestion1(){

    echo '问题1<br>';

    echo '答案为'.$this->Answer1().'<br>';
    }
    public function TestQuestion2(){

    echo '问题2<br>';

    echo '答案为'.$this->Answer2().'<br>';
    }
    public function TestQuestion3(){

    echo '问题3<br>';

    echo '答案为'.$this->Answer3().'<br>';
    }

    public function Answer1(){

    return '';
    }
    public function Answer2(){

    return '';
    }
    public function Answer3(){

    return '';
    }


    }

    <?php
    /**
    * Created by PhpStorm.
    * User: Administrator
    * Date: 2018/2/7
    * Time: 16:53
    */

    namespace frontendmodels;


    class TestPaperA extends TestPaper
    {

    public function Answer1(){

    return 'A';
    }
    public function Answer2(){

    return 'B';
    }
    public function Answer3(){

    return 'C';
    }

    }

    <?php
    /**
    * Created by PhpStorm.
    * User: Administrator
    * Date: 2018/2/7
    * Time: 16:54
    */

    namespace frontendmodels;


    class TestPaperB extends TestPaper
    {
    public function Answer1(){

    return 'C';
    }
    public function Answer2(){

    return 'A';
    }
    public function Answer3(){

    return 'B';
    }

    }

    $test1 = new TestPaperA();

    $test2 = new TestPaperB();

    $test1->TestQuestion1();
    $test1->TestQuestion2();
    $test1->TestQuestion3();

    $test2->TestQuestion1();
    $test2->TestQuestion2();
    $test2->TestQuestion3();

    模板方法模式是通过把不变行为搬移到超类,去除子类中的重复代码来提现它的优势。有时候我们会遇到由一系列步骤构成的过程需要执行。这个过程从高层次上看是相同的,但有些步骤的实现可能不同。这时候,我们通常就应该要考虑用模板方法模式了。

  • 相关阅读:
    VS中生成时“sgen.exe”已退出,代码为 1解决办法
    配置 influxDB 鉴权及 HTTP API 写数据的方法
    InfluxDB 的UTC时间问题与简单的持续查询语句
    C# 中HttpClient的使用中同步异步问题
    Action<T> Delegate
    Task Class
    .net4.0、.net4.5、.net4.6 三者对系统的要求
    vue 组件动态 循环
    js 取得当天0点 / 23:59:59 时间
    vue中element-ui树形控件自定义节点,注意一下
  • 原文地址:https://www.cnblogs.com/paulversion/p/8427580.html
Copyright © 2011-2022 走看看