面对批量的属性赋值创建对象适合使用建造者模式。
<?php
/*
* 被创建的类
* */
class CD {
protected $_type = "";
protected $_size = "";
protected $_color = "";
public function setType($type){
$this->_type = $type;
}
public function setSize($size){
$this->_size = $size;
}
public function setColor($color){
$this->_color = $color;
}
}
/*
* 建造者类
*
* */
class Bulider{
//用于存储创建的类
protected $_product = NULL;
//用于存储属性
protected $_configs = array();
function getconfig($configs){
$this->_configs = $configs;
}
//以通过多维数组循环批量创建对象
function bulid(){
$this->_product = new CD();
$this->_product->setType($this->_configs['type']);
$this->_product->setSize($this->_configs['size']);
$this->_product->setColor($this->_configs['color']);
}
//返回创建好的对象
function getProduct(){
return $this->_product;
}
}
$attribute = array('type'=>'CD', 'size'=>'20分钟','color'=>'red');
$bulider = new Bulider();
$bulider->getconfig($attribute);
$bulider->bulid();
$obj = $bulider->getProduct();
var_dump($obj);