我對PHP很陌生並試圖學習。我有兩個類似的類。我想在傳遞計數和對象類型時創建對象。我讀了一些關於工廠模式。這裏是我的工廠類:瞭解設計模式和PHP中的OOP
class AssetFactory
{
private static $table;
public static $objects = array();
public static function Create($asset,$count)
{
switch ($asset) {
case "Item":
self::$table = "items";
break;
case "Job":
self::$table = "jobs";
break;
}
$db = new Database();
$rows = $db->query("SELECT * FROM ".self::$table." LIMIT ".$count);
foreach($rows as $row)
{
self::$objects[] = new $asset($row);
}
return self::$objects;
}
}
,當我需要5個項目我使用:
$myItems = AssetFactory::Create('Item',5);
當我需要一些工作我使用:
$myJobs= AssetFactory::Create('Job',5);
項目和工作是similiar類。我的問題就在這裏,正如我所說,我正在努力學習。我做對了嗎?我瞭解工廠模式嗎?有任何關於這個好文件(我讀了所有關於php.net,還有其他)。
的' extend'定義了「是」的關係。你必須小心,不要寫'class User extends Table'或者像那樣的精神分裂症。 – 2012-03-13 23:55:34
在閱讀了tereško的回答之後,我意識到我對設計模式不瞭解多少。忽略我的迴應,它不是一個真正的Factory,沒有理由讓Asset類成爲單例。 – augustknight 2012-03-15 15:44:00