外观模式/ 门面模式(Facade Pattern)

本文通过一个具体的PHP代码示例介绍了外观模式的应用。该示例模拟了一个简单的餐饮订购过程,其中包括顾客下单、厨师烹饪等环节,并展示了如何使用外观模式简化系统的使用方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

百度词条的解释

http://baike.baidu.com/view/2739662.htm

<?php
//正面模式(外观模式)
//外观类(厨师)
class Cook {
	private $foods = array();
	//烹饪
	public function cooking(Customer $customer) {
		$menuList = $customer->getOrder();
		foreach($menuList as $value) {
			switch($value){
			case 'pig':
				$menu = new Pig();
				break;
			case 'vegetable':
				$menu = new Vegetable();
				break;
			case 'fish':
				$menu = new Fish;
				break;
			}
			$cookingFood = $menu->cooking();
			array_push($this->foods,$cookingFood);
		}
	}
	public function getFoods(){
		return $this->foods;
	}
}

//顾客类
class Customer {
	private $menu = array();
	public function order($food) {
		array_push($this->menu,$food);
		return $this;
	}

	public function getOrder() {
		return $this->menu;
	}
}

class Pig {
	public function cooking() {
		return 'ripe-pig';
	}
}

class Vegetable {
	public function cooking() {
		return 'ripe-vegetable';
	}
}

class Fish {
	public function cooking() {
		return 'ripe-fish';
	}
}

//顾客类实例
$custom = new Customer();
$custom->order('fish')->order('pig')->order('vegetable');

//厨师类实例(外观类实例)
$cook = new Cook();
$cook->cooking($custom);
var_dump($cook->getFoods());
?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值