3. 星际争霸之php设计模式--简单工厂模式
2015-01-25 12:37
831 查看
题记
==============================================================================
本php设计模式专辑来源于博客(jymoz.com),现在已经访问不了了,这一系列文章是我找了很久才找到完整的,感谢作者jymoz的辛苦付出哦!
本文地址:/article/5035987.html
==============================================================================
上次用星际争霸讨论了面向对象的基础知识,似乎面向对象能解决很多问题。
但是还会有很多问题,简单的靠类和对象解决不得太好。
比如如何根据玩家输入的内容(尽管可以转化为其他字符串),来确定要制造的兵种,玩家不会输入代码:new Marine()。
和星际一样,PHP也没有终极兵种,如果类和接口是兵种的话,那么设计模式就是你的战术和控制,它可以让你靠各种兵种的搭配获胜。
待解决的问题:在人族的兵营,我们靠相应玩家的输入来动态确定要造的兵种,假设是机枪兵和火焰兵。
思路:动态的根据传递的数据,新建相应的类的对象。
简单工厂模式示例:
我们把机枪兵类的代码放入一个文件,Marine.php,它的代码如下:
我们把火焰兵类的代码放入一个文件,Firebat.php,它的代码如下:
主文件中的内容如下:
用途总结:简单工厂模式可以将新建对象的任务进行封装,一旦需要增加新的返回类,只要修改负责新建对象的那部分代码。
实现总结:需要一个自动根据参数返回新建对象的工厂,比如上面兵种制造器BarracksCreator,使用的时候只需要将参数传递给他的生产方法create(),无需考虑具体的生产细节。
相关文章:
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设计模式--适配器模式
==============================================================================
本php设计模式专辑来源于博客(jymoz.com),现在已经访问不了了,这一系列文章是我找了很久才找到完整的,感谢作者jymoz的辛苦付出哦!
本文地址:/article/5035987.html
==============================================================================
上次用星际争霸讨论了面向对象的基础知识,似乎面向对象能解决很多问题。
但是还会有很多问题,简单的靠类和对象解决不得太好。
比如如何根据玩家输入的内容(尽管可以转化为其他字符串),来确定要制造的兵种,玩家不会输入代码:new Marine()。
和星际一样,PHP也没有终极兵种,如果类和接口是兵种的话,那么设计模式就是你的战术和控制,它可以让你靠各种兵种的搭配获胜。
待解决的问题:在人族的兵营,我们靠相应玩家的输入来动态确定要造的兵种,假设是机枪兵和火焰兵。
思路:动态的根据传递的数据,新建相应的类的对象。
简单工厂模式示例:
我们把机枪兵类的代码放入一个文件,Marine.php,它的代码如下:
<?php class Marine { //机枪兵攻击的方法 public function attack() { echo 'Marine attack'; } } ?>
我们把火焰兵类的代码放入一个文件,Firebat.php,它的代码如下:
<?php class Firebat { //火焰兵攻击的方法 public function attack() { echo 'Firebat attack'; } } ?>
主文件中的内容如下:
<?php //兵种制造器的类 class BarracksCreator { //制造兵种的方法 public create($createWhat) { //根据输入的参数,动态的把需要的类的定义文件载入 require_once($createWhat.'.php'); //根据输入的参数,动态的返回需要的类的对象 return new $createWhat; } } //新建一个兵种制造器对象 $creator = new BarracksCreator(); //靠接收参数制造一个火焰兵对象 $troop1 = $creator->create('Marine'); $troop1->attack(); //靠接收参数制造一个机枪兵对象 $troop2 = $creator->create('Firebat'); $troop2->attack(); ?>
用途总结:简单工厂模式可以将新建对象的任务进行封装,一旦需要增加新的返回类,只要修改负责新建对象的那部分代码。
实现总结:需要一个自动根据参数返回新建对象的工厂,比如上面兵种制造器BarracksCreator,使用的时候只需要将参数传递给他的生产方法create(),无需考虑具体的生产细节。
相关文章:
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设计模式--适配器模式
相关文章推荐
- 设计模式(一)简单工厂(创建型)(Java&&PHP)
- 10. 星际争霸之php设计模式--原型模式
- 15. 星际争霸之php设计模式--策略模式
- 14. 星际争霸之php设计模式--状态模式
- 4. 星际争霸之php设计模式--工厂方法模式
- 18. 星际争霸之php设计模式--观察者模式
- 实例讲解PHP设计模式编程中的简单工厂模式
- 20. 星际争霸之php设计模式--适配器模式
- PHP设计模式——简单工厂
- 9. 星际争霸之php设计模式--代理模式
- PHP设计模式——简单工厂(研磨设计模式学习笔记)
- 12. 星际争霸之php设计模式--模板模式
- [笔记丶设计模式]3. 简单工厂
- PHP设计模式1-简单工厂模式
- 5. 星际争霸之php设计模式--抽象工厂模式
- 11. 星际争霸之php设计模式--备忘模式
- 7. 星际争霸之php设计模式--中介者模式
- PHP简单工厂设计模式,简单代码。(缺点请指正,互相学习)
- 实例讲解PHP设计模式编程中的简单工厂模式
- 19. 星际争霸之php设计模式--迭代器模式