PHP简单装饰器模式实现与用法示例

 更新时间:2017年06月22日 10:13:12   作者:北京流浪儿  
这篇文章主要介绍了PHP简单装饰器模式实现与用法,结合具体实例形式分析了php装饰器模式的原理、实现与使用方法,需要的朋友可以参考下

本文实例讲述了PHP简单装饰器模式实现与用法。分享给大家供大家参考,具体如下:

<?php
//装饰器模式-在不改变原有类的结构上,对类的功能那个作补充
//武器基类
abstract class Weapon{
  abstract public function descriptions();
  abstract public function cost();
}
//剑类
class Glave extends Weapon{
  public function descriptions(){
    return 'Glave';
  }
  public function cost(){
    return "100";
  }
}
//匕首类
class Knife extends Weapon{
  public function descriptions(){
    return __CLASS__;
  }
  public function cost(){
    return "80";
  }
}
//斧类
class Axe extends Weapon{
  public function descriptions(){
    return __CLASS__;
  }
  public function cost(){
    return "200";
  }
}
//属性类
class Property extends Weapon{
  protected $_weapon = null;
  protected $_price = 0;
  protected $_descriptions = '';
  public function __construct(Weapon $weapon){
    $this->_weapon = $weapon;
  }
  public function cost(){
    return   $this->_weapon->cost() + $this->_price;
  }
  public function descriptions(){
    return $this->_weapon->descriptions().$this->_descriptions;
  }
}
//力量属性
class Strength extends Property{
  protected $_price = 30;
  protected $_descriptions = '+ Strength';
}
//敏捷属性
class Agility extends Property{
  protected $_price = 50;
  protected $_descriptions = '+ Agility';
}
//智力属性
class Intellect extends Property{
  protected $_price = 20;
  protected $_descriptions = '+ Intellect';
}
$weapon = new Agility(new Strength(new Strength(new Glave())));
echo $weapon->cost();
echo $weapon->descriptions();

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP基本语法入门教程》、《PHP网络编程技巧总结》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

相关文章

  • php格式化json函数示例代码

    php格式化json函数示例代码

    这篇文章主要介绍了php格式化json函数,结合实例形式分析了php使用自定义函数实现json格式化的方法,涉及php数组转json、流程控制及字符串操作等技巧,需要的朋友可以参考下
    2016-05-05
  • PHP 输出缓存详解

    PHP 输出缓存详解

    Output Control 函数可以让你自由控制脚本中数据的输出。它非常地有用,特别是对于:当你想在数据已经输出后,再输出文件头的情况。
    2009-06-06
  • PHP连接MySQL进行增、删、改、查操作

    PHP连接MySQL进行增、删、改、查操作

    本篇文章主要介绍了PHP连接MySQL进行增、删、改、查操作的方法,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • PHP取进制余数函数代码

    PHP取进制余数函数代码

    我想知道21712341byte在K位上是多少,M位上、G位呢?这相当于进制转换的问题。只不过现在要转换的进制是1024
    2012-01-01
  • PHP实现多个关键词搜索查询功能示例

    PHP实现多个关键词搜索查询功能示例

    这篇文章主要介绍了PHP实现多个关键词搜索查询功能,结合实例形式分析了php使用mysql中like、union等语句模糊查询相关操作技巧,需要的朋友可以参考下
    2018-06-06
  • php防止伪造的数据从URL提交方法

    php防止伪造的数据从URL提交方法

    这篇文章主要介绍了php防止伪造的数据从URL提交方法,需要的朋友可以参考下
    2014-06-06
  • php如何调用webservice应用介绍

    php如何调用webservice应用介绍

    Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术,接下来将详细介绍php如何调用webservice,需要的朋友可以了解下
    2012-11-11
  • php 无限级分类 获取顶级分类ID

    php 无限级分类 获取顶级分类ID

    这篇文章主要介绍了php 无限级分类 获取顶级分类ID的相关代码,需要的朋友可以参考下
    2016-03-03
  • 百度工程师讲PHP函数的实现原理及性能分析(三)

    百度工程师讲PHP函数的实现原理及性能分析(三)

    这篇文章主要介绍了百度工程师讲PHP函数的实现原理及性能分析(三),本文讲解了常用php函数实现及介绍,并作了总结及建议,需要的朋友可以参考下
    2015-05-05
  • php中分页及SqlHelper类用法实例

    php中分页及SqlHelper类用法实例

    这篇文章主要介绍了php中分页及SqlHelper类用法,结合实例形式分析了php数据库查询类与分页类的定义与具体使用技巧,需要的朋友可以参考下
    2017-01-01

最新评论