PHPBuilder-ModusDetaillierte Codebeispiele
<?php // 建造者模式 class Product { private $size; private $color; private $type; public function setSize($size) { $this->size = $size; } public function setColor($color) { $this->color = $color; } public function setType($type) { $this->type = $type; } public function toString() { ob_start(); echo 'Size: ', $this->size , '<br/>'; echo 'Color: ', $this->color , '<br/>'; echo 'Type: ', $this->type , '<br/>'; return ob_get_clean(); } } // 分别调用每个方法并不是最佳的做法 $product = new Product(); $product->setSize(100); $product->setColor('red'); $product->setType('shirt'); // echo $product; // ----------------------------------------------------------- /** * 建造者模式 * 将一个复杂对象的构建与它的表示分离,使同样的构建过程可以创建不同的表示 */ class ProductBuilder { private $product; private $configs; public function construct($cfgs) { $this->configs = $cfgs; $this->product = new Product(); } /** * 构建对象 */ public function buildProduct() { $this->product->setSize($this->configs['size']); $this->product->setColor($this->configs['color']); $this->product->setType($this->configs['type']); } public function getProduct() { return $this->product; } } $cfgs = array('size'=>100,'color'=>'blue','type'=>'shirt'); $builder = new ProductBuilder($cfgs); $builder->buildProduct(); echo $builder->getProduct();
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Codebeispiele für PHP-Builder-Muster. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!