前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【php设计模式】模板模式

【php设计模式】模板模式

作者头像
码缘
发布2019-06-21 21:14:58
2.2K0
发布2019-06-21 21:14:58
举报
文章被收录于专栏:PHP修行之路PHP修行之路

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

通俗点的理解就是 :完成一件事情,有固定的数个步骤,但是每个步骤根据对象的不同,而实现细节不同;就可以在父类中定义一个完成该事情的总方法,按照完成事件需要的步骤去调用其每个步骤的实现方法。每个步骤的具体实现,由子类完成。

以设计游戏为例,我们先定义游戏的大概框架,然后使各个不同的游戏来继承这个游戏框架,并实现框架中具体的方法

代码语言:javascript
复制
<?php
abstract class Game{
    abstract function initialize();
    abstract function startPlay();
    abstract function endPlay();

    //定义模板
    final public function play(){
        //初始化游戏
        $this->initialize();
        //开始游戏
        $this->startPlay();
        //结束游戏
        $this->endPlay();
    } 
}

class HunDouLuo extends Game{
    public function initialize(){
        echo "HunDouLuo Game Initialized! Start playing.\n";
    }

    public function startPlay(){
        echo "HunDouLuo Game Started. Enjoy the game!\n";
    }

    public function endPlay(){
        echo "HunDouLuo Game Finished!\n";
    }
}

class TanKe extends Game{
    public function initialize(){
        echo "TanKe Game Initialized! Start playing.\n";
    }

    public function startPlay(){
        echo "TanKe Game Started. Enjoy the game!\n";
    }

    public function endPlay(){
        echo "TanKe Game Finished!\n";
    }
}

$hdl = new HunDouLuo();
$hdl->play();

$tk = new TanKe();
$tk->play();
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-06-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档