<?php
abstract class Game{
abstract function initialize();
abstract function startPlay();
abstract function endPlay();
//模板,重点就是这个方法
public final function play(){
//初始化游戏
$this->initialize();
//开始游戏
$this->startPlay();
//结束游戏
$this->endPlay();
}
}
class Cricket extends Game {
public function endPlay() {
echo "Cricket Game Finished!".PHP_EOL;
}
public function initialize() {
echo "Cricket Game Initialized! Start playing.".PHP_EOL;
}
public function startPlay() {
echo "Cricket Game Started. Enjoy the game!".PHP_EOL;
}
}
class Football extends Game {
public function endPlay() {
echo "Football Game Finished!";
}
public function initialize() {
echo "Football Game Initialized! Start playing.".PHP_EOL;
}
public function startPlay() {
echo "Football Game Started. Enjoy the game!".PHP_EOL;
}
}
class TemplatePatternDemo {
public static function main() {
$game = new Cricket();
$game->play();
echo PHP_EOL;
$game = new Football();
$game->play();
}
}
TemplatePatternDemo::main();
模板模式
最新推荐文章于 2024-05-21 00:15:00 发布