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

首頁 > 開發(fā) > PHP > 正文

PHP設(shè)計(jì)模式之:原型模式學(xué)習(xí)筆記

2024-05-04 21:49:57
字體:
供稿:網(wǎng)友

原型模式和其它的模式相對(duì)有一些不同之處了,這個(gè)也是當(dāng)然了所有的設(shè)計(jì)模式中的各種模式都有自己的特色了,下面一起來看看。

原型模式其實(shí)和工廠模式比較類似,都是用來創(chuàng)建對(duì)象的,只不過與工廠模式的實(shí)現(xiàn)不同。原型模式是先創(chuàng)建好一個(gè)原型對(duì)象,然后通過clone原型對(duì)象來創(chuàng)建新的對(duì)象。這樣就免去了類創(chuàng)建時(shí)重復(fù)的初始化操作了。原型模式適用于大對(duì)象的創(chuàng)建,因?yàn)樵趧?chuàng)建一個(gè)大對(duì)象時(shí),需要很大的開銷。如果每次都去new就會(huì)消耗很大,原型模式僅需從內(nèi)存拷貝既可。

還是繼續(xù)通過實(shí)例來向大家演示一下:

  1. <?php 
  2. /** 
  3.  * 抽象原型角色 
  4.  */ 
  5. interface Prototype { 
  6.     public function clone_obj(); 
  7. /** 
  8.  * 具體原型角色 
  9.  */ 
  10. class Concrete implements Prototype{ 
  11.   
  12.     private $data
  13.   
  14.     public function __construct($data) { 
  15.         $this->data = $data
  16.     } 
  17.     public function get_data() { 
  18.         return $this->data; 
  19.     } 
  20.   
  21.     public function clone_obj() { 
  22.         /* 
  23.          * 深拷貝實(shí)現(xiàn) 
  24.          */ 
  25.         /*$serialize_obj = serialize($this); // 序列化 
  26.         $clone_obj = unserialize($serialize_obj); // 反序列化 
  27.         return $clone_obj;*/ 
  28.   
  29.         return clone $this// 淺拷貝 
  30.     } 
  31. /** 
  32.  * 測(cè)試深拷貝用的引用類 
  33.  */ 
  34. class Demo { 
  35.     public $arr
  36. $demo = new Demo(); 
  37. $demo->arr = array(1, 2); 
  38. $concrete = new Concrete($demo); 
  39. $object1 = $concrete->clone_obj(); 
  40. var_dump($concrete->get_data()); 
  41. echo '<br />'
  42. var_dump($object1->get_data()); 
  43. echo '<br />';  //Vevb.com 
  44. //測(cè)試深拷貝 
  45. $demo->arr = array(3, 4); 
  46. var_dump($concrete->get_data()); 
  47. echo '<br />'
  48. var_dump($object1->get_data()); 
  49. echo '<br />'
  50. ?> 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 曲麻莱县| 加查县| 鹰潭市| 西峡县| 温宿县| 清水县| 博湖县| 盘锦市| 河北区| 闵行区| 溧阳市| 湖北省| 沛县| 卓尼县| 泰兴市| 贵南县| 盘锦市| 益阳市| 红安县| 卫辉市| 铜鼓县| 长宁区| 红桥区| 疏附县| 游戏| 上杭县| 临西县| 红桥区| 木兰县| 鲁甸县| 施秉县| 彭泽县| 贞丰县| 溆浦县| 紫阳县| 阿拉善左旗| 防城港市| 石渠县| 冷水江市| 门源| 临夏市|