加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP编程:浅析php创建者模式

发布时间:2020-12-13 02:12:41 所属栏目:PHP教程 来源:网络整理
导读:《浅析php创建者模式》要点: 本文介绍了浅析php创建者模式,希望对您有用。如果有疑问,可以联系我们。 PHP教程 创建者模式: PHP教程 在创建者模式中,客户端不再负责对象的创建与组装,而是把这个对象创建的责任交给其具体的创建者类,把组装的责任交给组装类

《浅析php创建者模式》要点:
本文介绍了浅析php创建者模式,希望对您有用。如果有疑问,可以联系我们。

PHP教程创建者模式:

PHP教程在创建者模式中,客户端不再负责对象的创建与组装,而是把这个对象创建的责任交给其具体的创建者类,把组装的责任交给组装类,客户端支付对对象的调用,从而明确了各个类的职责.
应用场景:创建非常复杂,分步骤组装起来.

代码如下:

<?php
/**
?* 创建者模式
?*/
//购物车
class ShoppingCart {
?????? //选中的商品
??? private $_goods = array();
??? //使用的优惠券
??? private $_tickets = array();
?????? public function addGoods($goods) {
????????????? $this->_goods[] = $goods;
?????? }
??? public function addTicket($ticket) {
?????????? $this->_tickets[] = $ticket;
??? }
??? public function printInfo() {
?????????? printf("goods:%s,tickets:%sn",implode(',',$this->_goods),$this->_tickets));
??? }
}
//假如我们要还原购物车的东西,好比用户关闭浏览器后再打开时会根据cookie还原
$data = array(
?????? 'goods' => array('衣服','鞋子'),
?????? 'tickets' => array('减10'),
);
//如果不使用创建者模式,则需要业务类里一步步还原购物车
// $cart = new ShoppingCart();
// foreach ($data['goods'] as $goods) {
//?? $cart->addGoods($goods);
// }
// foreach ($data['tickets'] as $ticket) {
//?? $cart->addTicket($ticket);
// }
// $cart->printInfo();
// exit;
//我们提供创建者类来封装购物车的数据组装
class CardBuilder {
?????? private $_card;
?????? function __construct($card) {
????????????? $this->_card = $card;
?????? }
?????? function build($data) {
????????????? foreach ($data['goods'] as $goods) {
???????????????????? $this->_card->addGoods($goods);
????????????? }
????????????? foreach ($data['tickets'] as $ticket) {
???????????????????? $this->_card->addTicket($ticket);
????????????? }
?????? }
?????? function getCrad() {
????????????? return $this->_card;
?????? }
}
$cart = new ShoppingCart();
$builder = new CardBuilder($cart);
$builder->build($data);
echo "after builder:n";
$cart->printInfo();
?>

PHP教程可以看出,使用创建者模式对内部数据复杂的对象封装数据组装过程后,对外接口就会非常简单和规范,增加修改新数据项也不会对外部造成任何影响.

《浅析php创建者模式》是否对您有启发,欢迎查看更多与《浅析php创建者模式》相关教程,学精学透。编程之家 52php.cn为您提供精彩教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读