この記事では、PHP デザインパターンのシンプルなファクトリパターンをサンプル形式で詳しく紹介しており、PHP プログラム設計の参考になります。詳細は以下の通りです
1.コンセプト
簡易ファクトリパターン [静的ファクトリメソッドパターン](静的ファクトリメソッド)
クラスの作成モードです
いくつかの形式のファクトリーパターン:
1. シンプルファクトリーパターン(Simple Factory)は、静的ファクトリーメソッドパターン(Static Factory Method)とも呼ばれます
2. ファクトリメソッドはポリモーフィックファクトリーとも呼ばれます
3. Abstract Factory パターン (Abstract Factory) は ToolKit パターン (ToolKit) とも呼ばれます
2. 画像分析:
3. コード例
このサンプルコードはテストされており、次のように実行できます:
この記事で説明した例が PHP プログラミングのすべての人に役立つことを願っています。
例 #1 ファクトリ メソッドを呼び出す (パラメータ付き)
class Example
{
// パラメータ化されたファクトリ メソッド
public static function Factory($type)
{
if (include_once 'Drivers/' . $ type . '.php') {
$classname = 'Driver_' . $type;
return new $classname;
} else {
throw new Exception ('ドライバーが見つかりません');
}
}
}
?> ;
----------------------------------------
例 #2 シングルトン パターン
php
class Example
{
// この属性にクラス インスタンスを保存します
private static $instance;
// オブジェクトの直接作成を防ぐために、コンストラクターは private と宣言されます
private function __construct()
{
echo '私は構築されました ';
}
// シングルトンメソッド
public static function singleton()
{
if (!isset(self::$instance)) {
$c = __CLASS__;
self::$instance = new $c;
}
return self::$instance;
}
// サンプルクラスの通常のメソッド
public function bark()
{
echo 'Woof!';
}
// ユーザーがオブジェクト インスタンスをコピーしています
public function __clone()
{
trigger_error('クローンは許可されていません。', E_USER_ERROR);
}
}
?>
ファクトリーとは、インスタンスが生成される場所を指します。次に、単純にして直接 createInstance() という名前を付けます。通常、このメソッドは静的であり、パラメーターと戻り値を受け取ります。例: たとえば、牛、羊、馬、犬はすべてanimalクラスを継承しているため、createInstance()の戻り値はanimalである必要があります(工場は動物を生産するため、戻り値もanimalである必要があります)。パラメータは動物の名前でなければなりません (こうすることで、工場は名前に基づいてどの種類の動物を生産するかを知ることができます)。このようにして、渡された動物名に基づいて動物インスタンスを生成できます。 createInstance の実装: switch (動物名) case 牛: 新しい牛を返す (); ケース 馬: 新しい馬を返す ();