什麼是建造者模式
建造者模式主要是為了消除其它對象複雜的建立過程。
設計情境
有一個使用者的UserInfo類,建立這個類,需要建立使用者的姓名,年齡,金錢等資訊,才能獲得使用者具體的資訊結果。
建立一個UserInfoBuilder 使用者建造者類,這個類,將UserInfo複雜的建立姓名,年齡,金錢等操作封裝起來,簡化使用者類的建立過程
代碼:UserInfo類,建立UserInfo類是複雜的,痛苦的。
[php] view plaincopyprint?
//建造者模式,目的是消除其它對象複雜的建立過程
/* 描述一個使用者的類,包含使用者姓名,年齡,金錢 */
class UserInfo {
protected $userName = '';
protected $userAge = '';
protected $userMoney = '';
public function setUserName($userName) {
$this->userName = $userName;
}
public function setUserAge($userAge) {
$this->userAge = $userAge;
}
public function setUserMoney($userMoney) {
$this->userMoney = $userMoney;
}
public function getPeople() {
echo "這個人的姓名是:" . $this->setUserName . ',年齡是:' . $this->userAge . ', 金錢:' . $this->userMoney;
}
}
/* 執行個體化,並且建立這個使用者的時候,是很痛苦的,需要設定使用者名稱,年齡和金錢*/
$peopleInfo = array(
'userName' => 'initphp',
'userAge' => 28,
'userMoney' => '100元'
);
$UserInfo = new UserInfo;
//下面需要一步步的設定使用者資訊,才能得到使用者詳細資料,過程糾結而痛苦
$UserInfo->setUserName($peopleInfo['userName']);
$UserInfo->setUserAge($peopleInfo['userAge']);
$UserInfo->setUserMoney($peopleInfo['userMoney']);
$UserInfo->getPeople();
代碼:UserInfoBuilder 使用者資訊建造者類,將UserInfo的建立過程封裝掉,開發人員使用起來心情舒暢
[php]
//建造者模式,目的是消除其它對象複雜的建立過程
include("UserInfo.php");
class UserInfoBuilder {
protected $obj;
public function __construct() {
$this->obj = new UserInfo;
}
public function buildPeople($peopleInfo) {
$this->obj->setUserName($peopleInfo['userName']);
$this->obj->setUserAge($peopleInfo['userAge']);
$this->obj->setUserMoney($peopleInfo['userMoney']);
}
public function getPeople() {
$this->obj->getPeople();
}
}
/* 建立過程被封裝了,使用者使用簡單了 */
$peopleInfo = array(
'userName' => 'initphp',
'userAge' => 28,
'userMoney' => '100元'
);
$UserInfoBuilder = new UserInfoBuilder;
$UserInfoBuilder->buildPeople($peopleInfo); //直接一個build
$UserInfoBuilder->getPeople();
作者 :initphp
http://www.bkjia.com/PHPjc/478143.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/478143.htmlTechArticle什麼是建造者模式 建造者模式主要是為了消除其它對象複雜的建立過程。 設計情境 有一個使用者的UserInfo類,建立這個類,需要建立使用者的姓...