ホームページ  >  記事  >  バックエンド開発  >  PHPデザインパターン - シンプルファクトリパターン(静的ファクトリメソッドパターン)、PHPデザインパターン_PHPチュートリアル

PHPデザインパターン - シンプルファクトリパターン(静的ファクトリメソッドパターン)、PHPデザインパターン_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:19:34768ブラウズ

php デザイン パターン — シンプル ファクトリ パターン (静的ファクトリ メソッド パターン)、php デザイン パターン

コンセプト

シンプルファクトリパターン[静的ファクトリメソッドパターン]
はクラス作成パターンです

ファクトリ パターンのいくつかの形式:
1. 単純なファクトリ パターン | 静的ファクトリ メソッド パターンとも呼ばれます
2. ファクトリ メソッド パターン | ポリモーフィズム ポリモーフィック ファクトリとも呼ばれます
3. 抽象ファクトリ パターン | ツールキットとも呼ばれます

写真付き

コード例

コードを直接実行するだけで、すべてがテスト済みです

リーリー

phpデザインパターン: ファクトリパターンとモノモーフィックパターンのPHP5サンプルコードを作成します

例 #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 シングルトン パターン

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);
}

}

?>

シンプル ファクトリ パターンとファクトリ メソッド パターンの類似点と相違点は何ですか?

LZ は、単純なファクトリ、ファクトリ メソッド、および抽象ファクトリを一緒に勉強することをお勧めします。笑、私の先生は、少し前にこれら 3 つのモードの違いを勉強するように頼んだのですが、一緒に勉強するとより明確になるかもしれません。
単純なファクトリ パターンは、静的ファクトリ メソッド パターンとも呼ばれます。名前の変更から、このモードは非常に単純であることがわかります。その目的は単純で、オブジェクトを作成するためのインターフェイスを定義することです。
まずそのコンポーネントを見てみましょう:
1) ファクトリの役割: これはこのモデルの中核であり、特定のビジネス ロジックと判断ロジックが含まれています。 Java では、多くの場合、具象クラスによって実装されます。
2) 抽象的な製品の役割: これは通常、特定の製品または実装されたインターフェイスによって継承される親クラスです。 Javaではインターフェースまたは抽象クラスによって実装されます。
3) 特定の製品ロール: ファクトリ クラスによって作成されたオブジェクトは、このロールのインスタンスです。 Javaの具象クラスによって実装されます。
ファクトリ メソッド パターンは、単純なファクトリ パターン内のファクトリ メソッドの静的属性を削除し、サブクラスで継承できるようにします。このようにして、単純なファクトリ パターンでファクトリ メソッドに集中した圧力を、ファクトリ メソッド パターンの異なるファクトリ サブクラスで共有できます。
その構成を見てください:
1) 抽象的なファクトリの役割: これはファクトリ メソッド パターンの中核であり、アプリケーションとは何の関係もありません。これは、特定のファクトリ ロールが実装する必要があるインターフェイス、または継承する必要がある親クラスです。 Java では、抽象クラスまたはインターフェイスによって実装されます。
2) 特定のファクトリ ロール: 特定のビジネス ロジックに関連するコードが含まれています。特定の製品に対応するオブジェクトを作成するためにアプリケーションによって呼び出されます。
3) 抽象的な製品の役割: 特定の製品または実装されたインターフェイスによって継承される親クラスです。 Java では、通常、実装する抽象クラスまたはインターフェイスが存在します。
4) 特定の製品ロール: 特定のファクトリ ロールによって作成されたオブジェクトは、このロールのインスタンスです。 Java の特定のクラスによって実装されます。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/873921.html技術記事 PHP デザイン パターン - シンプル ファクトリ パターン (静的ファクトリ メソッド パターン)、PHP デザイン パターンの概念 シンプル ファクトリ パターン [静的ファクトリ メソッド パターン] (静的ファクトリ メソッド) は、クラス作成パターンです...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。