私は非常にPHPに慣れていて、勉強しようとしています。私は2つの似たようなクラスがあります。私はカウントとオブジェクトの型を渡すときにそのオブジェクトを作成したいと思います。私は工場のパターンについていくつか読んだ。ここに私のファクトリクラスは次のとおりです。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);
アイテムやジョブがその似ていますクラス。私は学ぶことを試みていると言ったので、私の質問はここにある。私はこれを正しくやっていますか?私は工場パターンを正しく理解しましたか?これについての良い文書があります(私はphp.netのすべてを読んで、何かを持っています)。
' 「延長」は「is a」関係を定義する。 'class User extends Table'や何かを統合失調症のように書かないように注意する必要があります。 –
上記のtereškoの反応を読んだ後、私はデザインパターンについてどれだけ知りませんか分かりました。私の反応を無視して、それは本当に工場ではなく、Assetクラスがシングルトンになる理由はありません。 – augustknight