您好,欢迎访问一九零五行业门户网

php 建造者模式

建造者模式-创建套餐
1.产品类meal(套餐类)
class meal { private $food; private $drink; public function setfood($f) { $this->food = $f; } public function setdrink($d) { $this->drink = $d; } public function getfood() { return $this->food; } public function getdrink() { return $this->drink; }}
2.抽象建造者类mealbuilder(套餐建造者类)
abstract class mealbuilder{ protected $meal; function __construct() { $this->meal = new meal(); } abstract protected function buildfood(); abstract protected function builddrink(); public function getmeal() { return $this->meal; }}
3.具体建造者类submealbuildera(a套餐建造者类)class submealbuildera extends mealbuilder{ public function buildfood() { $this->meal->setfood('一个鸡腿堡'); } public function builddrink() { $this->meal->setdrink('一杯可乐'); } public function getmeal() { return $this->meal; }}
4.具体建造者类submealbuilderb(b套餐建造者类)class submealbuilderb extends mealbuilder{ public function buildfood() { $this->meal->setfood('一个鸡肉卷'); } public function builddrink() { $this->meal->setdrink('一杯果汁'); } public function getmeal() { return $this->meal; }}
5.指挥者类kfcwaiter(服务员类)class kfcwaiter{ private $mealbuilder; public function setmealbuilder($mb) { eval(\$m= new {$mb}();); $this->mealbuilder = $m; return $this->mealbuilder; } public function construct() { $this->mealbuilder->buildfood(); $this->mealbuilder->builddrink(); return $this->mealbuilder->getmeal(); }}
6.配置文件submealbuilderasubmealbuilderb
6.辅助测试代码$mealstring = simplexml_load_file('meal.xml');$waiter = new kfcwaiter();foreach ($mealstring as $submeal) { $waiter->setmealbuilder($submeal->name); $meal = $waiter->construct(); echo '套餐组成:'; echo
; echo $meal->getfood(); echo
; echo $meal->getdrink(); echo
; echo
;}
运行结果
套餐组成:
一个鸡腿堡
一杯可乐
套餐组成:
一个鸡肉卷
一杯果汁
以上就介绍了php 建造者模式,包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。
其它类似信息

推荐信息