您好,欢迎访问一九零五行业门户网

设计模式入门-模板方法模式(php版)

一个笑话说:把大象装进冰箱需要几个步骤?
一、拉开冰箱
二、把大象塞进去
三、关上冰箱
同理,把狮子装进冰箱需要几个步骤?
一、拉开冰箱
二、把狮子塞进去
三、关上冰箱
上面这个例子中大家是否发现其实这两种方式有着共同的步骤,只是具体的实现稍有不同,简言之就是这两类行为可以共享一个步骤模板。由此可以引出这次要讨论的设计模式—模板设计模式。
模板设计模式的原理可以用如下所示的uml类图来表示:
具体的代码示例:
lockanimal.php
open(); $this->push(); $this->close(); } /** * 打开冰箱 */ abstract function open(); /** * 将动物推进冰箱 */ abstract function push(); /** * 关上冰箱 */ abstract function close();}
lockelephant.phpanesthetic(); } $this->push(); $this->close(); } /** * 打开冰箱 */ abstract function open(); /** * 是否需要麻醉 */ protected function needanesthetic(){ return false; } protected function anesthetic(){ echo anestheticing the animal; } /** * 将动物推进冰箱 */ abstract function push(); /** * 关上冰箱 */ abstract function close();}
lockelephant.php
; } /** * (non-phpdoc) * @see lockanimal::push() */ public function push(){ echo i'm pushing the elephant
; } /** * (non-phpdoc) * @see lockanimal::close() */ public function close(){ echo finally, now i can close the fridge
; }}

locklion.phplock();
模板方法设计模式的官方定义是:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类。模板方法可以使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。
以上就介绍了设计模式入门-模板方法模式(php版),包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。
其它类似信息

推荐信息