PHP设计模式中之装饰模式
2010-11-24 17:47
513 查看
下面是一个简单类,帮助了解装饰模式,希望能对大家有帮助,有些地方改成中文,便于了解。
我要到饭馆吃饭,程序的结果是打印对我吃的东西的描述和计算价钱。
这样一层一层的包下来, 像是大口袋套小口袋,就是所谓的装饰模式。
我要到饭馆吃饭,程序的结果是打印对我吃的东西的描述和计算价钱。
这样一层一层的包下来, 像是大口袋套小口袋,就是所谓的装饰模式。
//基类 class 食物{ var $des='食物'; var $cost; function getdes(){ return $this->des; } function getcost(){ return $this->cost; } } //被装饰者类 class 米饭 extends 食物{ var $des="米饭"; var $cost=0.44; } //装饰者类与被装饰者继承自同一个基类 class 菜 extends 食物{ var $obj; var $des=''; var $cost; } //细分的装饰者 class 炒土豆丝 extends 菜{ var $obj; var $des='土豆丝'; var $cost=0.10; function __construct($obj){ $this->obj=$obj; } function getdes(){ return $this->obj->getdes().$this->des; } function getcost(){ return $this->obj->getcost()+$this->cost; } } //有一个细分的装饰者 class 咸菜 extends 菜{ var $obj; var $des='咸菜'; var $cost=0.10; function __construct($obj){ $this->obj=$obj; } function getdes(){ return $this->obj->getdes().$this->des; } function getcost(){ return $this->obj->getcost()+$this->cost; } } //更多的菜 ...... //测试代码 $午饭= new 米饭(); $午饭=new 土豆丝($午饭); $午饭=new 咸菜($午饭); echo $午饭->getdes();//outputs 米饭土豆丝咸菜 echo $午饭->getcost();//outputs 0.64
相关文章推荐
- php设计模式专题附源码(解释器模式、工厂方法模式、外观模式、装饰模式、建造者模式)
- PHP设计模式之装饰器模式
- php八大设计模式之装饰器模式
- PHP设计模式之装饰器模式,委托模式,外观模式
- php八大设计模式之装饰器模式
- PHP设计模式之:装饰模式
- php设计模式之装饰器模式
- php设计模式之装饰模式
- php 设计模式 之 装饰模式
- 初识PHP设计模式--装饰模式
- php 设计模式 之 装饰模式
- php设计模式之装饰器
- php设计模式20-装饰着模式
- PHP设计模式-装饰模式实现非侵入式缓存
- php设计模式 Decorator(装饰模式)
- php设计模式-装饰器模式
- [php]php设计模式 Decorator(装饰模式)
- PHP设计模式系列 - 装饰器
- 【设计模式】之装饰器模式-PHP