模板方法模式——以不变应万变

来源:互联网 发布:大数据双创中心是什么 编辑:程序博客网 时间:2024/05/01 05:42

模板方法模式
定义一个操作中算法的骨架,而将一些步骤延迟到子类中,从而实现通过不同子类来对具体实现操作实现重定义。

假设现在有一份调查问卷,分给甲乙两个同学来做。

先看看我们的问卷类

abstract class questionnaire{       public function question1(){               echo "你的性别是".$this->answer1()."<br>";        }       public function question2(){            echo "你的工作是".$this->answer2()."<br>";      }abstract function answer1();abstract function answer2();}class jia extends questionnaire{         function answer1(){            echo "男";         }        function answer2(){           echo "厨师";       }}class yi extends questionnaire{        function answer1(){            echo "女";        }      function answer2(){           echo "老师";      }}$obj=new jia();$obj->question1();$obj->question2();

在这里我们把问卷共同的部分(问题)都提取到了父类中,而把变化的部分(答案)交由子类实现,减少了代码的重复。当我们在完成一些过程或一系列步骤时,如果只要个别步骤或者操作不同,可以考虑使用模板方法模式来减少重复代码。

0 0
原创粉丝点击