php设计模式--装饰模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php设计模式--装饰模式相关的知识,希望对你有一定的参考价值。

//手机套餐费用接口
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设计模式--装饰模式的主要内容,如果未能解决你的问题,请参考以下文章

PHP设计模式之装饰模式

PHP设计模式-装饰器模式

php模式之装饰者模式学习

PHP设计模式之装饰器模式

PHP设计模式 - 装饰器模式

PHP设计模式—装饰器模式