激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專(zhuān)注于服務(wù)器技術(shù)及軟件下載分享
分類(lèi)導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - PHP教程 - 解析PHP工廠模式的好處

解析PHP工廠模式的好處

2020-04-18 14:06PHP教程網(wǎng) PHP教程

本篇文章是對(duì)PHP工廠模式的好處進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下

顧名思義,工廠是可以加工零件的,PHP程序中的工廠模式也有相同的功能,可以方便的使用一個(gè)靜態(tài)的工廠方法來(lái)實(shí)例化某一個(gè)類(lèi),那么這樣做的好處是什么呢?初學(xué)PHP的設(shè)計(jì)模式,以下是我個(gè)人的理解
一般我們實(shí)例化一個(gè)類(lèi)會(huì)給它一些參數(shù)以便在其構(gòu)析的時(shí)候可以根據(jù)不同的參數(shù)反饋出我們需要的結(jié)果。
舉例說(shuō)明,以下是一個(gè)User類(lèi),非常簡(jiǎn)單:

復(fù)制代碼 代碼如下:


<?php
interface IUser{
   function getName();
   function getAge();
}
class User implements IUser{
   protected $_name;
   protected $_age;
   function __construct($name, $age){
      $this->_name = $name;
      $this->_age = (int)$age;
   }
   function getName(){
      return $this->_name;
   }
  function getAge(){
      return $this->_age;
   }
}
?>


我們?nèi)绻獙?shí)例化這個(gè)類(lèi)就要這樣:
$u = new User(‘小明‘,19);
一般如果這個(gè)類(lèi)很少使用,那么這樣做沒(méi)什么太大影響,也非常好。
突然我想給這個(gè)類(lèi)增加一個(gè)歸類(lèi),把小明放入學(xué)生組,修改下類(lèi)代碼實(shí)現(xiàn)非常容易,但如果這個(gè)類(lèi)在我們想修改之前在很多文件地方多次的實(shí)例化了,那么想為其增加一個(gè)參數(shù)就會(huì)變的非常煩瑣,因?yàn)樾枰鎿Q成:
$u = new User(‘小明‘,19,‘學(xué)生‘);
當(dāng)然我們也可以通過(guò)在__construct函數(shù)中進(jìn)行默認(rèn)值設(shè)置來(lái)避免這種重復(fù)勞動(dòng),但事實(shí)上從代碼優(yōu)雅角度來(lái)說(shuō)這樣很不好,設(shè)想我們有一個(gè)工廠方法可以通過(guò)一個(gè)標(biāo)識(shí)來(lái)對(duì)應(yīng)一組參數(shù),并把這個(gè)參數(shù)存放在某個(gè)文本文檔或是直接以數(shù)組的形式存放在工廠類(lèi)中,我們?cè)谡{(diào)用User類(lèi)的時(shí)候就會(huì)變的輕松許多,即便是需要增減參數(shù)屬性也不需要到處進(jìn)行代碼的替換,下面就是一個(gè)工廠類(lèi)(也可以直接將方法存放在User類(lèi))

復(fù)制代碼 代碼如下:


interface IUser{
    function getName();
    function getAge();
}
class User implements IUser{
   protected $_group;
   protected $_name;
   protected $_age;
  function __construct($name, $age, $group){
      $this->_group = $group;
      $this->_name = $name;
      $this->_age = (int)$age;
  }
  function getName(){
     return $this->_name;
  }
  function getAge(){
      return $this->_age;
  }
}
class Fuser{
   private static $group = array(
       array(‘小明‘,19,‘學(xué)生‘),
       array(‘小王‘,19,‘學(xué)生‘)
   );
   static function create($id){
      list($name, $age, $group) = self::$group[(int)$id];
      return new User($name, $age, $group);
   }
}
echo Fuser::create(0)->getName();


得到的結(jié)果應(yīng)該是輸出“小明”。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 一区二区三区在线观看免费 | 全黄裸片武则天一级第4季 九色p | 国产精品久久久久久久久久东京 | 99视频观看 | 国产免费片 | 国产一级大片在线观看 | 妇女毛片| 日本在线免费观看视频 | 成人国产精品久久久 | 欧美日韩高清一区二区三区 | 日韩美香港a一级毛片免费 久久精品视频1 | 成人三级电影网站 | chinesehd天美原创xxxx | 国产三级在线观看a | 91久久国产露脸精品国产 | 国产一区二区亚洲 | 国产一级做a爰片在线看 | 国产亚洲精品综合一区91 | 日本xxxx色视频在线观看免费, | 国产精品一品二区三区四区18 | 中国毛片在线观看 | www噜噜偷拍在线视频 | 91精品国产九九九久久久亚洲 | 成人羞羞在线观看网站 | 91福利免费观看 | 91精品一区二区综合在线 | 国产精品成人一区 | 九九热精品视频在线 | 美女扒开腿让男生桶爽网站 | 国产一区二区亚洲 | 中国大陆一级毛片 | 日韩理论电影网 | 国产精品99久久久久久久女警 | 欧美一级黄色片免费观看 | 国产精品久久久久久久久久尿 | chinese军人gay呻吟 | 午夜小视频免费观看 | 欧美亚洲一级 | 久久国产精 | 天天草夜夜爽 | 把娇妻调教成暴露狂 |