首頁  >  文章  >  後端開發  >  php中常見的工廠設計模式詳解

php中常見的工廠設計模式詳解

黄舟
黄舟原創
2017-08-23 10:03:201249瀏覽

一、工廠模式
是一種類,它具有為您建立物件的某些方法。您可以使用工廠類別建立對象,而不直接使用 new。這樣,如果您想要更改所建立的物件類型,只需更改該工廠即可。使用該工廠的所有代碼會自動變更。

下面程式碼為顯示工廠類別的一個示列。等式的伺服器端包括兩個部分:資料庫和一組 PHP 頁面,這些頁面可讓您新增回饋、請求回饋清單並取得與特定回饋相關的文章。

IUser 介面定義使用者物件要執行什麼動作:


interface IUser
{  function getName();
}

  IUser 的實作稱為User:





class User implements IUser
{  public function __construct( $id ) { } 
  public function getName()
  {    return "Jack";
  }
}

  UserFactory 工廠類別則建立IUser 物件:############
class UserFactory
{  public static function Create( $id )
  {    return new User( $id );
  }
}
###  測試程式碼會向工廠請求 ###User### 對象,並且輸出 ###getName ### 方法的結果:############
$pr = UserFactory::Create( 1 );echo( $pr->getName()."\n" );
###  有一種工廠模式的變體使用工廠方法。類別中的這些公共靜態方法建構該類型的物件。如果建立此類型的物件非常重要,此方法非常有用。例如,假設您需要先建立對象,然後設定許多屬性。此版本的工廠模式會將該進程封裝在單一位置中,這樣,不用複製複雜的初始化程式碼,也不必將複製好的程式碼在在程式碼庫中到處貼上。 ############
interface IUser //接口{  function getName();
} 
class User implements IUser
{  public static function Load( $id ) //静态函数  {        return new User( $id );
  }  public static function Create( ) //静态函数  {        return new User( null );
  }  public function __construct( $id ) { }//构造函数
 
  public function getName()
  {    return "Jack";
  }
} 
$uo = User::Load( 1 );echo( $uo->getName()."\n" );

以上是php中常見的工廠設計模式詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn