建立模型:

在创建者模式中,客户机不再负责对象的创建和组装。相反,客户机将对象的责任创建到特定的创建者类,并将程序集的责任交给程序集类,客户机负责对对象的调用,从而阐明每个类的职责。

应用场景:创建非常复杂,一步一步来。

复制代码代码如下所示:

< PHP



*建立模型

* /

购物车

类ShoppingCart {

选定货物

私人_goods美元=阵();

使用优惠券

私人_tickets美元=阵();

公共功能addgoods(美元商品){

美元-> _goods { } = $货;

}

公共功能addticket($票){

美元-> _tickets { } = $票;

}

公共函数存储(){

printf(货物:%s,门票:%锡

}

}

如果我们想恢复购物车的东西,如用户关闭浏览器,然后打开将根据cookie的减少

数据=数组(

货物=数组(衣服,鞋子),

票=数组(10′),

);

如果不使用创建者/ 模式,则需要逐步减少业务级购物车。

/ / $车=新(shoppingcart);

/ / foreach($数据'goods'} {美元商品){

/ / $车-> addgoods(合品);

}

/ / foreach($数据'tickets'} {美元票){

/ / $车-> addticket($票);

}

( / / $车->存储);

/退出;

我们提供类来封装创建者/购物车数据组件。

类cardbuilder {

私人_card美元;

功能__construct(美元卡){

美元-> _card = $卡;

}

函数构建($ data){

foreach($数据'goods'} {美元商品){

这_card美元-> -> addgoods(合品);

}

foreach($数据'tickets'} {美元票){

这_card美元-> -> addticket($票);

}

}

功能getcrad(){

返回_card美元->;

}

}

$车=新ShoppingCart();

为建造新的cardbuilder(合车);

构建器($数据);

生成器之后;

$车->存储();

>



可以看出,在使用创建者模式封装复杂数据对象的数据组装过程后,外部接口将非常简单和规范。添加新的数据项将不会对外部产生任何影响。