欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解析PHP工廠模式的好處

 更新時間:2013年06月18日 16:25:44   作者:  
本篇文章是對PHP工廠模式的好處進行了詳細的分析介紹,需要的朋友參考下
顧名思義,工廠是可以加工零件的,PHP程序中的工廠模式也有相同的功能,可以方便的使用一個靜態(tài)的工廠方法來實例化某一個類,那么這樣做的好處是什么呢?初學PHP的設計模式,以下是我個人的理解
一般我們實例化一個類會給它一些參數(shù)以便在其構析的時候可以根據(jù)不同的參數(shù)反饋出我們需要的結果。
舉例說明,以下是一個User類,非常簡單:
復制代碼 代碼如下:

<?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;
   }
}
?>

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

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,‘學生‘),
       array(‘小王‘,19,‘學生‘)
   );
   static function create($id){
      list($name, $age, $group) = self::$group[(int)$id];
      return new User($name, $age, $group);
   }
}
echo Fuser::create(0)->getName();

得到的結果應該是輸出“小明”。

相關文章

  • 淺析memcache啟動以及telnet命令詳解

    淺析memcache啟動以及telnet命令詳解

    本篇文章是對memcache啟動以及telnet命令進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • php2html php生成靜態(tài)頁函數(shù)

    php2html php生成靜態(tài)頁函數(shù)

    生成靜態(tài)函數(shù) 這里要用到的路徑為服務器絕對路徑; 若給定的路徑目錄不存在則自動創(chuàng)建
    2008-12-12
  • php獲取后臺Job管理的實現(xiàn)代碼

    php獲取后臺Job管理的實現(xiàn)代碼

    從數(shù)據(jù)庫中取出job 隊列 創(chuàng)建新的進程進行執(zhí)行 等待job 結束
    2011-06-06
  • php畫圖實例

    php畫圖實例

    這篇文章主要介紹了php畫圖的方法,實例講述了基于PHP繪制圖像與文字的方法,需要的朋友可以參考下
    2014-11-11
  • thinkPHP5實現(xiàn)的查詢數(shù)據(jù)庫并返回json數(shù)據(jù)實例

    thinkPHP5實現(xiàn)的查詢數(shù)據(jù)庫并返回json數(shù)據(jù)實例

    這篇文章主要介紹了thinkPHP5實現(xiàn)的查詢數(shù)據(jù)庫并返回json數(shù)據(jù)功能,結合實例形式分析了thinkPHP5數(shù)據(jù)庫查詢及json格式數(shù)據(jù)簡單操作技巧,需要的朋友可以參考下
    2017-10-10
  • PHP實現(xiàn)自動識別Restful API的返回內容類型

    PHP實現(xiàn)自動識別Restful API的返回內容類型

    這篇文章主要介紹了PHP實現(xiàn)自動識別Restful API的返回內容類型,并實現(xiàn)自動自動渲染成 json、xml、html、serialize、csv、php等數(shù)據(jù)格式輸出,需要的朋友可以參考下
    2015-02-02
  • PHP 身份驗證方面的函數(shù)

    PHP 身份驗證方面的函數(shù)

    寫了幾個身份證方面的函數(shù),個人感覺挺有用的,特別是在網(wǎng)絡問卷調查時,對個人信息里的身份證進行驗證很有用,但是應者寥寥,還是收在自己的blog里算了。
    2009-10-10
  • php打印輸出棋盤的實現(xiàn)方法

    php打印輸出棋盤的實現(xiàn)方法

    這篇文章主要介紹了php打印輸出棋盤的實現(xiàn)方法,以實例形式分析了兩種不同的實現(xiàn)方法,具有一定的參考借鑒價值,需要的朋友可以參考下
    2014-12-12
  • php實現(xiàn)可逆加密的方法

    php實現(xiàn)可逆加密的方法

    這篇文章主要介紹了php實現(xiàn)可逆加密的方法,借鑒了discuz的加密原理實現(xiàn)通過密鑰進行可逆加密的功能,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08
  • php獲取某個目錄大小的代碼

    php獲取某個目錄大小的代碼

    大致就是不知道目錄下面又多少層目錄, 也不知道又多少文件, 需要統(tǒng)計占用空間大小, 這個可以用在 相冊/數(shù)據(jù)庫占用/網(wǎng)絡U盤 等程序中.
    2008-09-09

最新評論