PHP工廠設計模式

一个新手
發布: 2023-03-15 22:48:02
原創
1130 人瀏覽過

一、工廠模式
是一種類,它具有為您建立物件的某些方法。您可以使用工廠類別建立對象,而不直接使用 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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板