PHP装饰者模式
2016-04-28 14:59
543 查看
装饰者模式
interface Beverage { public function cost(); } //被装饰 class Coffee implements Beverage { public function cost() { return 1; } } //装饰者 class CondimentDecorator implements Beverage { public function cost() { } } class Milk extends CondimentDecorator { private $_beverage; public function __construct($beverage) { if($beverage instanceof Beverage) { $this->_beverage = $beverage; } } public function cost() { return $this->_beverage->cost() + 2; } } class Sugar extends CondimentDecorator { private $_beverage; public function __construct($beverage) { if($beverage instanceof Beverage) { $this->_beverage = $beverage; } } public function cost() { return $this->_beverage->cost()+3; } } $coffee = new Coffee(); //加牛奶 $coffee = new Milk($coffee); //加糖 $coffee = new Sugar($coffee); //总消费 echo $coffee->cost();
相关文章推荐
- php实现在站点里面添加邮件发送的功能
- php 创建相同元素一维数组与创建递增元素一维数组函数
- PHP7 (win10下)编译方法
- php输出excel表格乱码和第一个0不显示的解决方法(详细)
- php提交过来的数据生成为txt文件
- php生成txt文件实例代码介绍
- thinkphp 访问静态页面
- PHP导出数据到Excel文件
- 【ESP8266】使用SNTP接口获取时间
- php 字符串的四种表达方式-两种定界符(界定符)
- Windows Server 2016 TP5 14300发布,免费下载
- windows下php不支持mysql
- server 同一服务器上的两个php.ini文件!!
- PHP中的ORM
- js 模拟实现php类中的静态变量
- php 随机读取一维数组的一个或多个元素
- 破解zend studio 12.5
- zend studio 导入php项目到工作空间
- php防止sql注入
- php学习记录 易混淆