91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP工廠模式的好處有哪些

發布時間:2020-12-29 15:59:05 來源:億速云 閱讀:172 作者:Leah 欄目:開發技術

這篇文章將為大家詳細講解有關PHP工廠模式的好處有哪些,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

顧名思義,工廠是可以加工零件的,PHP程序中的工廠模式也有相同的功能,可以方便的使用一個靜態的工廠方法來實例化某一個類,那么這樣做的好處是什么呢?初學PHP的設計模式,以下是我個人的理解
一般我們實例化一個類會給它一些參數以便在其構析的時候可以根據不同的參數反饋出我們需要的結果。
舉例說明,以下是一個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);
一般如果這個類很少使用,那么這樣做沒什么太大影響,也非常好。
突然我想給這個類增加一個歸類,把小明放入學生組,修改下類代碼實現非常容易,但如果這個類在我們想修改之前在很多文件地方多次的實例化了,那么想為其增加一個參數就會變的非常煩瑣,因為需要替換成:
$u = new User(‘小明‘,19,‘學生‘);
當然我們也可以通過在__construct函數中進行默認值設置來避免這種重復勞動,但事實上從代碼優雅角度來說這樣很不好,設想我們有一個工廠方法可以通過一個標識來對應一組參數,并把這個參數存放在某個文本文檔或是直接以數組的形式存放在工廠類中,我們在調用User類的時候就會變的輕松許多,即便是需要增減參數屬性也不需要到處進行代碼的替換,下面就是一個工廠類(也可以直接將方法存放在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();

關于PHP工廠模式的好處有哪些就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

布尔津县| 潜山县| 永定县| 磐安县| 安图县| 普兰店市| 北安市| 墨玉县| 宜川县| 峡江县| 平顺县| 祁阳县| 逊克县| 西峡县| 河东区| 金乡县| 新晃| 应城市| 开江县| 南涧| 姜堰市| 瑞昌市| 唐河县| 绥德县| 澄迈县| 通州区| 葵青区| 靖西县| 新宁县| 龙江县| 长顺县| 汉寿县| 屏东市| 武胜县| 外汇| 绵阳市| 茌平县| 宜宾市| 无极县| 舒城县| 凤冈县|