PHP设计模式之模板方法模式Template Method Pattern详解(php设计模式六大原则有哪些)全程干货

随心笔谈2年前发布 编辑
155 0
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买

//抽象出来一个下载类
abstract class DownloadSongs {
protected $singer;
protected $operator;
public function __construct($singer) {
$this->singer=$singer;
}
//前置钩子
protected function beforeDownloadHook() {
echo ‘充值’ . $this->operator . ‘会员’ . PHP_EOL;
}
//后置钩子
protected function afterDownloadHook() {
echo $this->operator . ‘还算好用,就是要充会员’ . PHP_EOL;
}
//组合调用
public function download() {
$this->beforeDownloadHook();
$this->downloadMusic();
$this->afterDownloadHook();
}
//具体实现让子类进行
abstract protected function downloadMusic();
}
//酷狗类,实现父类的两个方法
class KuGouMusic extends DownloadSongs {
protected $operator=’酷狗’;
protected function downloadMusic() {
echo ‘从酷狗音乐上下载’ . $this->singer . ‘的歌曲’ . PHP_EOL;
}
}
//QQ类,实现父类的两个方法
class QQMusic extends DownloadSongs {
protected $operator=’QQ’;
protected function downloadMusic() {
echo ‘从QQ音乐上下载’ . $this->singer . ‘的歌曲’ . PHP_EOL;
}
}
//调用端=======================================================================(new KuGouMusic(‘凤凰传奇’))->download();
(new QQMusic(‘英文’))->download();

© 版权声明

相关文章