如何在PHP中实现一个装饰器模式

  介绍

本篇文章为大家展示了如何在PHP中实现一个装饰器模式,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

具体如下:

& lt; PHP ?//装饰器模式,在不改变原有类的结构上,对类的功能那个作补充//武器基类   {abstract  class 武器   abstract 才能;public  function 描述();   abstract 才能;public  function 成本();   }//剑类   {class  Glave  extends 武器   public 才能;function 描述(){   ,,,return  & # 39;剑# 39;;   ,,}   public 才能;function 成本(){   ,,,return “100“;;   ,,}   }//匕首类   {class  Knife  extends 武器   public 才能;function 描述(){   ,,,return  __CLASS__进行;   ,,}   public 才能;function 成本(){   ,,,return “80“;;   ,,}   }//斧类   {class  Axe  extends 武器   public 才能;function 描述(){   ,,,return  __CLASS__进行;   ,,}   public 才能;function 成本(){   ,,,return “200“;;   ,,}   }//属性类   {class  Property  extends 武器   protected 才能;_weapon 美元;=,空;   protected 才能;_price 美元;=,0;   protected 才能;_descriptions 美元;=,& # 39;& # 39;;   public 才能;function  __construct (Weapon 武器美元){   ,,,这个→美元_weapon =,美元的武器;   ,,}   public 才能;function 成本(){   ,,,return ,, $ this→_weapon→成本(),+,$ this→_price;   ,,}   public 才能;function 描述(){   ,,,return  $ this→_weapon→描述()。这个→美元_descriptions;   ,,}   }//力量属性   class  Strength  extends 财产{   protected 才能;_price 美元;=,30;   protected 才能;_descriptions 美元;=,& # 39;+,力量# 39;;   }//敏捷属性   class  Agility  extends 财产{   protected 才能;_price 美元;=,50;   protected 才能;_descriptions 美元;=,& # 39;+,敏捷性# 39;;   }//智力属性   class  Intellect  extends 财产{   protected 才能;_price 美元;=,20;   protected 才能;_descriptions 美元;=,& # 39;+,智慧# 39;;   }   $ weapon =, new 敏捷(new 强度(new 强度(new 剑())));   echo 武器→美元成本();   echo 武器→美元描述();

如何在PHP中实现一个装饰器模式