每日一模式之建造者模式

<?php
class User{
	protected $_name,$_age,$_sex;
	public function setName($name){
		$this->_name = $name;
	}

	public function setAge($age){
		$this->_age = $age;
	}

	public function setSex($sex){
		$this->_sex = $sex;
	}
}

class UserBuilder{
	protected $_user;
	protected $_configs;

	public function __construct($config){
		$this->_user = new User();
		$this->_configs = $config;
	}
	public function builder(){
		$this->_user->setName($this->_configs["name"]);
		$this->_user->setAge($this->_configs["age"]);
		$this->_user->setSex($this->_configs["sex"]);
	}

	public function getUser(){
		return $this->_user;
	}
}

//避免重複
$config = array("name"=>"beck","age"=>18,"sex"=>1);
//若是沒有builder
$user = new User();
$user->setName($this->_configs["name"]);
$user->setAge($this->_configs["age"]);
$user->setSex($this->_configs["sex"]);


$config = array("name"=>"beck_new","age"=>38,"sex"=>2);
//若是沒有builder
$user2 = new User();
$user2->setName($this->_configs["name"]);
$user2->setAge($this->_configs["age"]);
$user2->setSex($this->_configs["sex"]);



//若是有builder,去除重複
$builder = new UserBuilder($config);
$builder->builder();
print_r($builder->getUser());

建造者模式:把一個類的對象的構建交給另一個類。php

相關文章
相關標籤/搜索