码迷,mamicode.com
首页 > Web开发 > 详细

php设计模式--装饰模式

时间:2017-06-05 19:01:17      阅读:289      评论:0      收藏:0      [点我收藏+]

标签:protected   php   echo   his   one   ted   cti   private   pac   

//手机套餐费用接口
abstract class IPhonePackpageFee
{
      protected abstract function SpendFee();
      public $Fee;
}
//基础消费
class  MonthFee extends IPhonePackpageFee
{
    public function __construct($fee)
    {
        $this->Fee=$fee;
    }
    public function SpendFee ()
    {
        echo("基础套餐费用:".$this->Fee);
        echo ("<hr/>");
    }
}

装饰基类:

//装饰类
class DecoratorService extends IPhonePackpageFee
{
       private  $exFee;
       function __construct(IPhonePackpageFee $exfee)
    {
        $this->exFee=$exfee;
    }
    public  function SpendFee()
    {
        $this->exFee->SpendFee();
    }

}
class  MobileFlow extends  DecoratorService
{
    function __construct(DecoratorService $exService,$fee)
    {
        parent::__construct($exService);
        $this->Fee=$fee;
    }

    public function SpendFee()
    {
        $this->SpendFlow();
        parent::SpendFee();
    }
    private function SpendFlow()
    {
        echo ("流量费用:".$this->Fee);
        echo ("<br/>");
    }
}

调用:

echo("php装饰模式:");
        echo ("<hr/>");
        $monthfee=new MonthFee(30);
        $decorator=new DecoratorService($monthfee);
        $flow=new MobileFlow($decorator,12);
        $flow->SpendFee();

 

php设计模式--装饰模式

标签:protected   php   echo   his   one   ted   cti   private   pac   

原文地址:http://www.cnblogs.com/sunchong/p/6946436.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!