婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PHP設計模式之模板方法模式實例淺析

PHP設計模式之模板方法模式實例淺析

熱門標簽:兼職做地圖標注好賺錢嗎 地圖標注怎么做商戶驗證 打開百度地圖標注 亳州企業外呼系統 山東電銷卡外呼系統原理是什么 400 電話 辦理 海南外呼系統方案 蘇州外呼系統有效果嗎 智能電銷語音機器人資訊

本文實例講述了PHP設計模式之模板方法模式。分享給大家供大家參考,具體如下:

定義一個操作中的算法的框架,而將一些步驟延遲到子類中。使得子類可以不改變一個算法的結構即可重定義該算法的某些特定步驟。

模板方法模式中會用到抽象模板,它的方法分為兩類:

  • 基本方法,也叫做基本操作,是由子類實現的方法,并且在模板方法被調用。
  • 模板方法,可以有一個或多個,一般是一個具體方法,也就是一個框架,實現基本方法的調度,完成固定邏輯。

注意: 為了防止惡意的操作,一般模板方法都加上final關鍵字,不允許被覆寫。

注意: 抽象模板中的基本方法盡量設計為protected類型,符合迪米特法則,不需要暴露的屬性或方法盡量不要設置為protected類型。實現類若非必要,盡量不要擴大父類中的訪問權限。

模板方法模式的優點

  • 封裝不變部分,擴展可變部分。
  • 提取公共部分代碼,便于維護。
  • 行為由父類控制,子類實現

示例:

?php
/**
 * 模型方法模式
 */
abstract class ACar {
  abstract protected function start();
  abstract protected function engineBoom();
  abstract protected function alarm();
  abstract protected function stop();
  public function run() {
    $this->start();
    $this->engineBoom();
    $this->alarm();
    $this->stop();
  }
}
final class Benz extends ACar {
  protected function start() {
    echo 'Benz start' . PHP_EOL;
  }
  protected function engineBoom() {
    echo 'Benz engine boom' . PHP_EOL;
  }
  protected function alarm() {
    echo 'Benz alarm' . PHP_EOL;
  }
  protected function stop() {
    echo 'Benz stop' . PHP_EOL;
  }
}
final class BMW extends ACar {
  protected function start() {
    echo 'BMW start' . PHP_EOL;
  }
  protected function engineBoom() {
    echo 'BMW engine boom' . PHP_EOL;
  }
  protected function alarm() {
    echo 'BMW alarm' . PHP_EOL;
  }
  protected function stop() {
    echo 'BMW stop' . PHP_EOL;
  }
  // 修改順序
  public function run() {
    $this->start();
    $this->alarm();
    $this->engineBoom();
    $this->stop();
  }
}
class Client {
  public static function run() {
    $benz = new Benz();
    $benz->run();
    $bmw = new BMW();
    $bmw->run();
  }
}
Client::run();

運行結果:

Benz start Benz engine boom Benz alarm Benz stop BMW start BMW alarm BMW engine boom BMW stop

注:部分內容摘自《設計模式之禪

更多關于PHP相關內容感興趣的讀者可查看本站專題:《php面向對象程序設計入門教程》、《PHP數組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。

您可能感興趣的文章:
  • php單態設計模式(單例模式)實例
  • php設計模式 Singleton(單例模式)
  • 基于php設計模式中單例模式的應用分析
  • 學習php設計模式 php實現單例模式(singleton)
  • PHP設計模式之單例模式原理與實現方法分析
  • PHP設計模式之抽象工廠模式實例分析
  • PHP設計模式之簡單工廠和工廠模式實例分析
  • PHP設計模式之工廠模式定義與用法詳解
  • PHP設計模式之單例模式定義與用法分析

標簽:萊蕪 綏化 呼倫貝爾 清遠 溫州 金華 紹興 安康

巨人網絡通訊聲明:本文標題《PHP設計模式之模板方法模式實例淺析》,本文關鍵詞  PHP,設計模式,之,模板,方法,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP設計模式之模板方法模式實例淺析》相關的同類信息!
  • 本頁收集關于PHP設計模式之模板方法模式實例淺析的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 从江县| 城固县| 吉安县| 包头市| 抚州市| 尚义县| 繁峙县| 康定县| 卢湾区| 介休市| 屏边| 合水县| 景东| 鲁甸县| 黄大仙区| 鹰潭市| 弥渡县| 淮滨县| 开平市| 彰武县| 澎湖县| 镇巴县| 司法| 福鼎市| 武定县| 扎赉特旗| 鹤壁市| 丽水市| 休宁县| 台州市| 郓城县| 曲松县| 诏安县| 安义县| 黔江区| 玉溪市| 桐乡市| 湖州市| 晋中市| 沁源县| 托克托县|