• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP设计模式之模板方法模式实例浅析

    本文实例讲述了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类与对象后期静态绑定操作实例详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    PHP设计模式之模板方法模式实例浅析 PHP,设计模式,之,模板,方法,