php设计模式之适配器模式实例分析【星际争霸游
网络编程 2021-07-04 23:05www.168986.cn编程入门
这篇文章主要介绍了php设计模式之适配器模式,结合星际争霸游戏案例形式分析了PHP适配器模式相关原理、用法及操作注意事项,需要的朋友可以参考下
本文实例讲述了php设计模式之适配器模式。分享给大家供大家参考,具体如下
星际的很多兵种,都有至少一项特殊技能。而且有些兵种的技能是相同的,比如虫族部队都会恢复血。
如果按照一般的思路,把技能的操作和控制作为方法,放在每个兵种的定义类来实现,代码会重复,也不容易修改。
那我们就会考虑用继承的办法,比如我们可以设计一个虫族的基类,里面有受伤后血恢复的方法。
在设计刺蛇(Hydralisk,口水兵)的时候,我们可以让刺蛇类继承虫族基类。
刺蛇是可以研发钻地的,而钻地不是刺蛇独有的功能,是虫族地面部队都有的特点,我们也要把钻地作为公共基类。
问题出来了,我们不能让刺蛇类继承两个类,这是php不允许的。
待解决的问题如何混合重用两个类,
思路继承一个类,把新建其中一个类的对象作为属性,然后通过这个属性来调用第二个类的方法。
适配器(Adapter)模式示例
<?php //虫族基类 class Zerg { //血 public $blood; //恢复血的方法 public function restoreBlood() { //自动逐渐恢复兵种的血 } } //钻地的类 class Burrow { //钻地的方法 public function burrowOperation() { //钻地的动作,隐形等等 echo '我钻地了'; } } //刺蛇的类 class Hydralisk extends Zerg { //把一个属性来存放钻地对象 public $burrow; //构造方法,因为php不允许默认值采用对象,所以通过初始化赋值给$burrow public function __construct() { $this->burrow=new Burrow(); } //钻地的方法 public function burrowOperation() { //调用钻地属性存放的对象,使用钻地类的方法 $this->burrow->burrowOperation(); } } //制造一个刺蛇 $h1 = new Hydralisk(); //让他钻地 $h1->burrowOperation(); //运行输出我钻地了 ?>
用途适配器模式使得一个类可以使用两个基础类的功能,跳出了单纯继承的限制。有效的重用多各类。
实现让新的类去继承一个基础类,然后通过新类的属性来存放其他类的对象,通过这些对象来调用其他类的方法.
更多关于PHP相关内容感兴趣的读者可查看本站专题《》、《》、《》、《》、《》、《》及《》
希望本文所述对大家PHP程序设计有所帮助。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程