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

发布时间 - 2026-01-11 02:00:08    点击率:

本文实例讲述了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  # 装饰器模式  # PHP设计模式(八)装饰器模式Decorator实例详解【结构型】  # PHP设计模式之装饰器模式定义与用法简单示例  # PHP设计模式之装饰器模式定义与用法详解  # PHP设计模式之装饰器模式实例详解  # 学习php设计模式 php实现装饰器模式(decorator)  # PHP结构型模式之装饰器模式  # 程序设计  # 操作技巧  # 相关内容  # 感兴趣  # 给大家  # 更多关于  # 所述  # 面向对象  # 不改变  # 编程技巧  # 讲述了  # descriptions  # cost  # function  # Weapon  # public  # return  # extends  # 剑类  # Glave 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  如何快速搭建支持数据库操作的智能建站平台?  在centOS 7安装mysql 5.7的详细教程  如何在Windows服务器上快速搭建网站?  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  中国移动官方网站首页入口 中国移动官网网页登录  Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】  Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践  公司网站制作需要多少钱,找人做公司网站需要多少钱?  米侠浏览器网页背景异常怎么办 米侠显示修复  Laravel如何配置和使用缓存?(Redis代码示例)  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  JS碰撞运动实现方法详解  如何制作一个表白网站视频,关于勇敢表白的小标题?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  做企业网站制作流程,企业网站制作基本流程有哪些?  Laravel如何编写单元测试和功能测试?(PHPUnit示例)  网站建设要注意的标准 促进网站用户好感度!  网站制作壁纸教程视频,电脑壁纸网站?  Laravel中的Facade(门面)到底是什么原理  高端智能建站公司优选:品牌定制与SEO优化一站式服务  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  教你用AI将一段旋律扩展成一首完整的曲子  如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】  晋江文学城电脑版官网 晋江文学城网页版直接进入  想要更高端的建设网站,这些原则一定要坚持!  Windows Hello人脸识别突然无法使用  郑州企业网站制作公司,郑州招聘网站有哪些?  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  bing浏览器学术搜索入口_bing学术文献检索地址  三星网站视频制作教程下载,三星w23网页如何全屏?  PythonWeb开发入门教程_Flask快速构建Web应用  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  大连 网站制作,大连天途有线官网?  Python并发异常传播_错误处理解析【教程】  免费网站制作appp,免费制作app哪个平台好?  如何在云主机上快速搭建网站?  nodejs redis 发布订阅机制封装实现方法及实例代码  大学网站设计制作软件有哪些,如何将网站制作成自己app?  如何快速打造个性化非模板自助建站?  php静态变量怎么调试_php静态变量作用域调试技巧【解答】