ホームページ >バックエンド開発 >PHPチュートリアル >PHP設計パターンに基づくファクトリパターンの詳細な紹介_PHPチュートリアル

PHP設計パターンに基づくファクトリパターンの詳細な紹介_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:10:11927ブラウズ

ファクトリ パターン: ファクトリ クラスは、パラメータに基づいてプロダクション クラスのどのインスタンスを作成するかを決定します。
ファクトリ クラス: 他のオブジェクトを作成するために特に使用されるメソッド クラス。つまり、オンデマンドで割り当て、選択用のパラメーターを渡し、特定のクラスを返します
機能: オブジェクト作成のカプセル化、オブジェクト作成の操作を簡素化します。つまり、ファクトリ クラスのメソッドを呼び出して必要なクラスを取得します
補足:
1. 主な役割
: 抽象プロダクト (プロダクト)、具体プロダクト (具体的なプロダクト)、抽象ファクトリーの役割 (クリエイター)
2. メリットとデメリット
メリット: ファクトリ メソッド パターンを導入することができます。ファクトリの役割を変更せずに新しい製品を作成する
欠点: 顧客は、特定の Concrete Product オブジェクトを作成するためだけに Creator サブクラスを作成する必要がある場合があります
3. 適用性
クラスが作成する必要があるオブジェクトを知らない場合
クラスが必要な場合クラスがオブジェクト作成の責任を複数のヘルパー サブクラスの 1 つに委任し、どのヘルパー サブクラスが委譲者であるかについての情報をローカライズする必要がある場合 時間

コードをコピーする 例 コードは次のとおりです: & lt ;? PHP
// オブジェクト
Class MyObject {
Public Function __ConStruct () {}
Public Function test () {
Return 'test'
}
}
//Factory
class MyFactory{
public static function Factory (){
新しい MyObject(); }
}

$myObject = MyFactory::factory();

;
?//抽象クラスは属性と抽象メソッドを定義します
abstract class Operation{
protected $_NumberA = 0;
protected $_Result= 0;

public function __construct($A) $ B) {t $ this- & gt;
$ this- & gt; $ b;}} パブリック関数 setnumber ($ a, $ b) {
$ this- & gt; = $A;

}

/ /Operation クラス
class OperationAdd extends Operation{
Public function getResult(){ $ this-> _result = $ this-> _numbesera + $ this->_Result = $this->_NumberA - $this->_NumberB;
}
…………

//Factory クラス
class OperationFactory{
private static $obj

public static function CreationOperation( $type,$A,$B){
switch($type){
case '+'

ブレーク

}

}

// オペレーション
$ obj = OperationFactory :: CreationOperation ('+ ', 5,6);
echo $ obj- & gt;

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/327159.html技術記事ファクトリ パターン: ファクトリ クラスは、パラメータに基づいてプロダクト クラスのどのインスタンスを作成するかを決定します。ファクトリ クラス: 他のオブジェクトを作成するために特に使用されるメソッド クラスです。つまり、オンデマンドで割り当て、パラメーターを渡します...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。