PHP設計模式系列 - 建造者模式_PHP教程

來源:互聯網
上載者:User
什麼是建造者模式
建造者模式主要是為了消除其它對象複雜的建立過程。
設計情境
有一個使用者的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類,建立這個類,需要建立使用者的姓...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.