• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP设计模式之工厂模式_php

php 搞代码 7年前 (2018-06-21) 192次浏览 已收录 0个评论

工厂设计模式: 提供获取某个对象的新实例的一个接口, 同时使调用代码避免确定实际实例化基类的步骤。

  1. <?php   
  2. //基础标准CD类   
  3. class CD {   
  4.        
  5.     public $tracks = array();   
  6.     public $band   = '';   
  7.     public $title  = '';   
  8.        
  9.     public function __construct() {}   
  10.        
  11.     public function setTitle($title) {   
  12.         $this->title    = $title;   
  13.     }   
  14.        
  15.     public function setBand($band) {   
  16.         $this->band     = $band;   
  17.     }   
  18.        
  19.     public function addTrack($track) {   
  20.         $this->tracks[] = $track;   
  21.     }   
  22. }   
  23.    
  24. //增强型CD类, 与标准CD的唯一不同是写至CD的第一个track是数据track("DATA TRACK")   
  25. class enhadcedCD {   
  26.     public $tracks = array();   
  27.     public $band   = '';   
  28.     public $title  = '';   
  29.    
  30.     public function __construct() {   
  31.         $this->tracks   = "DATA TRACK";   
  32.     }   
  33.        
  34.     public function setTitle($title) {   
  35.         $this->title    = $title;   
  36.     }   
  37.        
  38.     public function setBand($band) {   
  39.         $this->band     = $band;   
  40.     }   
  41.        
  42.     public function addTrack($track) {   
  43.         $this->tracks[] = $track;   
  44.     }   
  45. }   
  46.    
  47. //CD工厂类,实现对以上两个类具体实例化操作   
  48. class CDFactory {   
  49.        
  50.     public static function create($type) {   
  51.         $class = strtolower($type) . "CD";   
  52.            
  53.         return new $class;   
  54.     }   
  55. }   
  56.    
  57. //实例操作   
  58. $type = "enhadced";   
  59.    
  60. $cd   = CDFactory::create($type);   
  61.    
  62. $tracksFromExternalSource = array("What It Means""Brr""Goodbye");   
  63.    
  64. $cd->setBand("Never Again");   
  65. $cd->setTitle("Waste of a Rib");   
  66. foreach ($tracksFromExternalSource as $track) {   
  67.     $cd->addTrack($track);   
  68. }   
  69. ?> 

 数据库脚本请参照:http://www.cxybl.com/html/wlbc/php/2011_1126_9458.html

欢迎大家阅读《PHP设计模式之工厂模式_php》,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP设计模式之工厂模式_php
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址