• 售前

  • 售后

热门帖子
入门百科

PHP筹划模式之模板模式界说与用法详解

[复制链接]
情醉香格里拉墒 显示全部楼层 发表于 2021-10-26 13:01:05 |阅读模式 打印 上一主题 下一主题
本文实例报告了PHP计划模式之模板模式定义与用法。分享给大家供大家参考,具体如下:
模板模式预备一个抽象类,将部分逻辑以具体方法以及具体构造形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。先订定一个顶级逻辑框架,而将逻辑的细节留给具体的子类去实现。
UML类图:

角色:
抽象模板角色(MakePhone):抽象模板类,定义了一个具体的算法流程和一些留给子类必须实现的抽象方法。
具体子类角色(XiaoMi):实现MakePhone中的抽象方法,子类可以有自己独特的实现形式,但是实行流程受MakePhone控制。
核心代码:
  1. <?php
  2. /**
  3. * Created by PhpStorm->
  4. * User extends Jang
  5. * Date extends 2015/6/10
  6. * Time extends 11 extends 06
  7. */
  8. //抽象模板类
  9. abstract class MakePhone
  10. {
  11.   protected $name;
  12.   public function __construct($name)
  13.   {
  14.     $this->name=$name;
  15.   }
  16.   public function MakeFlow()
  17.   {
  18.     $this->MakeBattery();
  19.     $this->MakeCamera();
  20.     $this->MakeScreen();
  21.     echo $this->name."手机生产完毕!<hr/>";
  22.   }
  23.   public abstract function MakeScreen();
  24.   public abstract function MakeBattery();
  25.   public abstract function MakeCamera();
  26. }
  27. //小米手机
  28. class XiaoMi extends MakePhone
  29. {
  30.   public function __construct($name='小米')
  31.   {
  32.     parent::__construct($name);
  33.   }
  34.   public  function MakeBattery()
  35.   {
  36.     echo "小米电池生产完毕!<br/>";
  37.   }
  38.   public  function MakeCamera()
  39.   {
  40.     echo "小米相机生产完毕!<br/>";
  41.   }
  42.   public function MakeScreen()
  43.   {
  44.     echo "小米屏幕生产完毕!<br/>";
  45.   }
  46. }
  47. //魅族手机
  48. class FlyMe extends MakePhone
  49. {
  50.   function __construct($name='魅族')
  51.   {
  52.     parent::__construct($name);
  53.   }
  54.   public  function MakeBattery()
  55.   {
  56.     echo "魅族电池生产完毕!<br/>";
  57.   }
  58.   public  function MakeCamera()
  59.   {
  60.     echo "魅族相机生产完毕!<br/>";
  61.   }
  62.   public  function MakeScreen()
  63.   {
  64.     echo "魅族屏幕生产完毕!<br/>";
  65.   }
  66. }
复制代码
调用客户端测试代码:
  1. header("Content-Type:text/html;charset=utf-8");
  2. //-------------------------模板模式---------------------
  3. require_once "./Template/Template.php";
  4. $miui=new XiaoMi();
  5. $flyMe=new FlyMe();
  6. $miui->MakeFlow();
  7. $flyMe->MakeFlow();
复制代码
运行结果:
  1. 小米电池生产完毕!
  2. 小米相机生产完毕!
  3. 小米屏幕生产完毕!
  4. 小米手机生产完毕!
  5. --------------------------------------------------------------------------------
  6. 魅族电池生产完毕!
  7. 魅族相机生产完毕!
  8. 魅族屏幕生产完毕!
  9. 魅族手机生产完毕!
  10. --------------------------------------------------------------------------------
复制代码
实用场景及优势:
1、完成某一细节条理划一的一个过程或一系列步调,但其个别步调在更具体的条理上的实现大概不同时。我们通常思量用模板模式来处理。
2、当稳定的和可变的举动在方法的子类实现中混合在一起的时候,稳定的举动就会在子类中重复出现,我们通过模板模式把这些举动搬移到单一的地方,如许就资助子类摆脱重复的稳定举动的胶葛。
3、模板模式通过把稳定的举动搬移到超等抽象类,去除子类中的重复代码来表现它的优势。模板模式提供了一个很好的代码复用平台。
更多关于PHP相关内容感爱好的读者可查察本站专题:《php面向对象程序计划入门教程》、《PHP数组(Array)操纵本领大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操纵入门教程》及《php常见数据库操纵本领汇总》
盼望本文所述对大家PHP程序计划有所资助。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作