ホームページ > バックエンド開発 > PHPチュートリアル > PHP デザイン パターン ビルダー パターン

PHP デザイン パターン ビルダー パターン

WBOY
リリース: 2016-06-23 13:03:18
オリジナル
959 人が閲覧しました

ビルダー パターンは創造的なパターンです

概要: 複雑なオブジェクトの構築をその表現から分離し、同じ構築プロセスで異なる表現を作成できるようにします

利点:

ビルダー パターンは非常に優れたものになる可能性がありますオブジェクトの分離関連する「ビジネス」ロジックから実装を行うため、イベント ロジックを変更せずに実装を追加 (または変更) することが非常に簡単になります

欠点:

ビルダー インターフェイスの変更により、すべての実行クラスが変更されます

ビルダーは次のことを行う必要があります以下の状況で使用できます:

1 生成する必要がある製品オブジェクトの内部構造が複雑である

2 生成する必要がある製品オブジェクトのプロパティは相互に依存しており、ビルダー パターンによって生成順序が強制される可能性がある

3 オブジェクト作成プロセス中に、システム内の他のオブジェクトが使用されます。これらのオブジェクトは、製品作成プロセス中に取得するのが簡単ではありません。

ビルダー パターンを使用すると、主に次のような効果があります。ビルダー パターンは製品の内部外観を作成します ビルダー モードを使用すると、クライアントは製品の内部構成の詳細を知る必要がなく、独立して変更できます

2 各ビルダーは比較的独立しており、何の関係もありません他のビルダー

3 モードによって構築された最終プロダクトは制御が容易です

class Product{

public $type = null;

public $price = null;

public $color = null;

public function setType ($type){

$this->type = $type;

}

public function setPrice($price){

$this->price = $price;

}

public function setColor ($color){

$this->color = $color;

}

}

$config = array(

'type' => 'シャツ',

'価格' => 100,

'color' => 'red',

);

//ビルダーモードを使用しないでください

$product = new Product();

$product->setType[' type']);

$product->setPrice($config['price ']);

$product->setColor($config['color']);

ビルダーモードを使用します

/*ビルダークラス*/

class ProductBuilder{

public $config = null;

public $object = null;

public function __construct($config){

$this->object = new Product();

$this->config = $config;

}

public function build (){

$this->gt;object->setType($this->config['type']);

$this->object->setPrice($this->config['price']);

$this->object->setColor($this->config['color']);

}

public function getProduct(){

return $this->object;

}

}

$objBuilder = new ProductBuilder($config);

$objBuilder->build();

$objProduct = $objBuilder->getProduct();

var_dump($ objProduct);

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート