当前位置: 首页 > news >正文

网络公司 营销型网站代理招生平台

网络公司 营销型网站,代理招生平台,网站页面html静态化是什么意思,网站竞价题记本php设计模式专辑来源于博客(jymoz.com)#xff0c;现在已经访问不了了#xff0c;这一系列文章是我找了很久才找到完整的#xff0c;感谢作者jymoz的辛苦付出哦#xff01; 本文地址#xff1a;http://www.cnblogs.com/davidhhuan/p/4248177.html PHP手册上提到的工…题记本php设计模式专辑来源于博客(jymoz.com)现在已经访问不了了这一系列文章是我找了很久才找到完整的感谢作者jymoz的辛苦付出哦 本文地址http://www.cnblogs.com/davidhhuan/p/4248177.html PHP手册上提到的工厂模式其实是简单工厂模式。这里来讨论简单工厂模式的扩展工厂方法模式。 待解决的问题虽然简单工厂解决了动态返回不同类型对象的问题但是实际情况当中往往在新建一个对象的时候需要做一些额外处理比如制造机枪兵的时候需要判断水晶矿是否大于50而制造火焰兵的时候需要同时判断水晶矿是否大于50和气矿大于25还有是否建造了研究院。如果把这些代码全部放到工厂制造类里面会使得制造类很臃肿而且随着工厂生产的对象的种类越来越多工厂制造类的代码会越来越难以维护。 思路简单工厂模式中的工厂类兵种制造器的类保持不变增加一个制造接口定义一个实际制造对象的方法然后定义各个具体制造不同对象的工厂同时要求这些工厂执行这个制造接口让这些工厂去实现实际制造对象的方法。 工厂方法模式示例 我们把机枪兵类和制造机枪兵的类的代码放入一个文件Marine.php它的代码如下 ?php//机枪兵类class Marine {//机枪兵攻击的方法public function attack(){echo Marine attack;}}//制造机枪兵的类执行接口abstractCreatorclass MarineCreator implements abstractCreator {//实际制造机枪兵的方法public function realCreate(){//如果水晶矿大于50这里只是作为说明因为并不存在ore这个变量也不考虑水晶少于50的处理if($ore50){return new Marine();}}} ? 我们把火焰兵类和制造火焰兵的类的代码放入一个文件Firebat.php它的代码如下 ?php//火焰兵类class Firebat {//火焰兵攻击的方法public function attack(){echo Firebat attack;}}//制造火焰兵的类执行接口abstractCreatorclass FirebatCreator implements abstractCreator{//实际制造火焰兵的方法public function realCreate(){//如果水晶矿大于50同时气矿大于25并且研究院已经存在。这里只是作为说明因为并不存在ore和gas和Academy变量也不考虑资源不够时的处理if($ore50 $gas25 Academy1){return new Firebat();}}} ? 主文件中的内容如下 ?php//各个具体工厂必须执行的接口interface abstractCreator {//规定各个具体工厂要实现的方法public function realCreate();}//兵种制造器的类也就是主工厂class BarracksCreator {//制造兵种的方法public create($createWhat){//根据输入的参数动态的把需要的类的定义文件载入require_once($createWhat..php);//根据输入的参数动态的获取相应的具体工厂的类的名字$creatorClassName $createWhat.Creator;//新建具体工厂对象$creator new $creatorClassName;//用具体工厂来实际生产然后返回需要的类的对象。因为它们都执行了接口abstractCreator所以肯定实现了方法realCreate()return $creator-realCreate();}}//新建一个兵种制造器对象$creator new BarracksCreator()//靠接收参数制造一个火焰兵对象$troop1 $creator-create(Marine);$troop1-attack();//靠接收参数制造一个机枪兵对象$troop2 $creator-create(Firebat);$troop2-attack();? 用途总结工厂方法模式将新建对象的任务将给对应的具体工厂类不必因为某些生产的对象需要进行额外处理而修改对外的主工厂。 实现总结需要接收参数的主工厂类比如上面兵种制造器BarracksCreator还需要声明具体制造方法的一个接口比如上面abstractCreator然后定义具体生产各个产品的具体工厂类每个具体工厂类必须执行接口abstractCreator这样他们就必须实现制造对象的方法比如上面的realCreate()。使用的时候只需要将参数传递给主工厂类工厂的生产方法create()然后由create()根据参数生成具体工厂类的对象并调用具体工厂类realCreate()获取制造的产品对象并返回对外界使用来说只需调用主工厂类工厂进行生产。说明其实这篇文章内的工厂方法模式和有些文章写的不同标准的工厂模式往往是用一个抽象类来代替上面的接口abstractCreator然后让所有的具体工厂类来继承它但使用的时候由于抽象类不能实例化新建它的对象所以经常是代码中直接new FirebatCreator()但是简单工厂模式可以解决直接new的问题所以我这里将简单工厂模式和工厂方法模式一起使用使这里的示例更加实用。同时由于PHP是单继承而执行接口的数量是没有限制的所以使用接口abstractCreator更加灵活。   相关文章   1. 星际争霸之php面向对象(一) 2. 星际争霸之php面向对象(二) 3. 星际争霸之php设计模式--简单工厂模式 4. 星际争霸之php设计模式--工厂方法模式 5. 星际争霸之php设计模式--抽象工厂模式 6. 星际争霸之php设计模式--建造器模式 7. 星际争霸之php设计模式--中介者模式 8. 星际争霸之php设计模式--享元模式 9. 星际争霸之php设计模式--代理模式 10. 星际争霸之php设计模式--原型模式 11. 星际争霸之php设计模式--备忘模式 12. 星际争霸之php设计模式--模板模式 13. 星际争霸之php设计模式--正面模式 14. 星际争霸之php设计模式--状态模式 15. 星际争霸之php设计模式--策略模式 16. 星际争霸之php设计模式--组合模式 17. 星际争霸之php设计模式--职责链模式 18. 星际争霸之php设计模式--观察者模式 19. 星际争霸之php设计模式--迭代器模式 ​20. 星际争霸之php设计模式--适配器模式
http://icebutterfly214.com/news/8406/

相关文章:

  • Ubuntu 22.04 LTS 安装 gitlab
  • 一物一码公司推荐,国内头部品牌为何青睐在互动云平台!
  • 全球前十轮胎品牌:权威排名最新解析
  • 机器学习决策树与大模型的思维树 - 详解
  • SpiritConfigTool.jar 做什么的
  • CSP-S2025
  • SOA、ESB、微服务、分布式概念及专业名词阐述
  • 项目2:图书管理系统(数据库入门)
  • 2025 年 11 月双锥回转真空干燥机,离心喷雾干燥机,带式干燥机厂家最新推荐,专业制造与品牌保障口碑之选
  • 2025 年 11 月高效沸腾干燥机,旋转闪蒸干燥机,空心桨叶干燥机厂家最新推荐,产能、专利、环保三维数据透视
  • CSP-J 2025 复赛解析
  • CSS:现代Web设计的不同技术
  • 部署Docker开源记账神器Firefly III
  • 完整教程:RabbitMQ-如何保证消息不丢失
  • [GESP202306 二级] 找素数
  • 如何使用React和Redux构建现代化Web应用程序
  • React Hooks 实现表单验证
  • 100万QPS短链系统、商城微服务系统、Saas点餐系统、商城系统、秒杀系统、刷题吧小程序、智能天气播报AI Agent等9个实战项目
  • 【C++】map和set的使用 - 指南
  • 150行的推箱子游戏
  • 中国移动获得手机直连卫星通讯牌照:行业变革的催化剂 - 实践
  • 2025 年 11 月复合酸精华液,抗氧化精华液,液态精华液 OEM/ODM 加工厂最新推荐,榜单透视与选购要点解析!
  • 2025年11月太空舱品牌推荐评价:有实力厂家综合性能评测
  • 2025年11月打印纸推荐榜:口碑好厂家全方位分析与购买建议
  • HTTP 与 SOCKS5 代理协议:企业级选型指南与工程化实践 - Smart
  • 2025年11月洗碗机品牌推荐评测:海信创新技术与全球布局详析
  • 2025年11月美国投资移民机构排行榜:全面评测与选择建议
  • 记一次vscode 自动格式化保存经历
  • 2025 年 11 月美白贴片面膜,补水贴片面膜,紧致贴片面膜厂家最新推荐,技术实力与市场口碑深度解析
  • vscode判断当前是否为debug模式