国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

原型模式有什么用?

2024-05-04 21:50:59
字體:
來源:轉載
供稿:網友

原型模式(Prototype)

Prototype原型模式是一種創建型設計模式,Prototype模式允許一個對象再創建另外一個可定制的對象,根本無需知道任何如何創建的細節,工作原理是:通過將一個原型對象傳給那個要發動創建的對象,這個要發動創建的對象通過請求原型對象拷貝它們自己來實施創建。

解決什么問題

它主要面對的問題是:“某些結構復雜的對象”的創建工作;由于需求的變化,這些對象經常面臨著劇烈的變化,但是他們卻擁有比較穩定一致的接口。

使用php提供的clone()方法來實現對象的克隆,所以Prototype模式實現一下子變得很簡單。并可以使用php的__clone() 函數完成深度克隆。

代碼實例:

  1. <?php 
  2.  
  3. //定義原型類接口 
  4.  
  5. interface prototype{ 
  6.  
  7. public function copy(); 
  8.  
  9.  
  10. //一個具體的業務類并實現了prototype 接口 
  11.  
  12. //以一個文本的讀寫操作類為例 
  13.  
  14. class text implements prototype{ 
  15.  
  16. private $_fileUrl
  17.  
  18. public function __construct($fileUrl){ 
  19.  
  20. $this->_fileUrl = $fileUrl
  21.  
  22.  
  23. public function write($content){ 
  24.  
  25. file_put_contents($this->_fileUrl, $content); 
  26.  
  27.  
  28. public function read(){ 
  29.  
  30. return file_get_contents($this->_fileUrl); 
  31.  
  32.  
  33. public function copy(){ 
  34.  
  35. return clone $this
  36.  
  37.  
  38. /* 可以使用php的__clone() 函數完成深度克隆 */ 
  39.  
  40. public function __clone(){ 
  41.  
  42. echo 'clone...'
  43.  
  44.  
  45.  
  46. $texter1 = new text('1.txt'); 
  47.  
  48. $texter1->write('test...'); 
  49.  
  50. //獲得一個原型 
  51.  
  52. $texter2 = $texter1->copy(); 
  53.  
  54. echo $texter2->read(); 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 连平县| 望江县| 托克逊县| 阳山县| 寿光市| 舟曲县| 金乡县| 綦江县| 鄂州市| 哈密市| 图片| 观塘区| 科技| 唐山市| 澄城县| 礼泉县| 常山县| 积石山| 阳谷县| 定州市| 濮阳市| 宁城县| 阜新市| 尼木县| 绍兴市| 沙坪坝区| 通州市| 皮山县| 秦皇岛市| 信丰县| 阜新| 和平区| 高台县| 岳普湖县| 高陵县| 岳普湖县| 霍山县| 孝感市| 石屏县| 阿拉善右旗| 东光县|