模板模式

  • 在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。
  • 它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。
  • 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
<?php


abstract class game{
    abstract function init();
    abstract function start();
    abstract function end();
    
    public final function play(){
        $this->init();
        $this->start();
        $this->end();
    }
}

class football extends game{
    public function init(){
        echo '足球游戏初始化 ' . "<br>";
    }
    
    public function start(){
        echo '足球游戏开始 ' . "<br>";
    }
    
    public function end(){
        echo '足球游戏结束 ' . "<br>";
    }
}

class basketball extends game{
    public function init(){
        echo '篮球游戏初始化 ' . "<br>";
    }
    
    public function start(){
        echo '篮球游戏开始 ' . "<br>";
    }
    
    public function end(){
        echo '篮球游戏结束 ' . "<br>";
    }
}

$f = new football;
$f->play();

$b = new basketball;
$b->play();


/*
输出:
足球游戏初始化
足球游戏开始
足球游戏结束
篮球游戏初始化
篮球游戏开始
篮球游戏结束
*/
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容