
説明する
1. ファクトリ パターンは、new を使用せずにインスタンス オブジェクトを作成する方法を解決します。
2. ターゲットを新規作成する以外にもいくつかの方法があります。
作成されるオブジェクトのタイプを変更したい場合は、ファクトリを変更するだけでよく、このファクトリを使用するすべてのコードが自動的に変更されます。
3. 通常、インターフェイスで使用されるため、アプリケーションはこれらのインスタンス化されたクラスの特定の詳細を知る必要はありません。
ファクトリが特定のインターフェイス カテゴリをサポートするクラスを返すことがわかっていれば、使い方は簡単です。
例
/**
* 人のインターフェイスを抽象化 * インターフェイス 人物
*/
インターフェース 人物
{
パブリック関数 showInfo();
}
/**
* 抽象ヒューマン インターフェイスを継承する学生クラス * クラス Student
*/
クラス学生が人を実装する
{
パブリック関数 showInfo()
{
echo "これは学生ですn";
}
}
/**
* 抽象ヒューマンインターフェイスを継承した教師クラス * Class Teacher
*/
クラス 教師が人を実装する
{
パブリック関数 showInfo()
{
echo "これは先生ですn";
}
}
/**
* ヒューマン ファクトリー * クラス personFactory
*/
クラスパーソンファクトリー
{
パブリック静的関数ファクトリー($person_type)
{
// $class_name = ucfirst($person_type); で渡された型の最初の文字を大文字にします。
if(class_exists($class_name)){
新しい $class_name を返します。
}それ以外{
throw new Exception("クラス: $class_name が存在しません",1);
}
}
}
// 学生が必要 $student = PersonFactory::factory('student');
echo $student->showInfo();
// 先生が必要なとき $Teacher = PersonFactory::factory('Teacher');
echo $Teacher->showInfo();以上が PHP ファクトリーモードの紹介でしたので、皆様のお役に立てれば幸いです。