您的位置:首页 > 编程语言 > PHP开发

PHP设计模式1-简单工厂模式

2013-08-04 19:09 597 查看
不熟悉面向对象的朋友,建议先看看用星际快速入门PHP面向对象编程上次用星际争霸讨论了面向对象的基础知识,似乎面向对象能解决很多问题。但是还会有很多问题,简单的靠类和对象解决不得太好。比如如何根据玩家输入的内容(尽管可以转化为其他字符串),来确定要制造的兵种,玩家不会输入代码:new Marine()。和星际一样,PHP也没有终极兵种,如果类和接口是兵种的话,那么设计模式就是你的战术和控制,它可以让你靠各种兵种的搭配获胜。待解决的问题:在人族的兵营,我们靠相应玩家的输入来动态确定要造的兵种,假设是机枪兵和火焰兵。思路:动态的根据传递的数据,新建相应的类的对象。简单工厂模式示例:我们把机枪兵类的代码放入一个文件,Marine.php,它的代码如下:<?phpclass Marine { //机枪兵攻击的方法public function attack(){echo 'Marine attack';}}?>我们把火焰兵类的代码放入一个文件,Firebat.php,它的代码如下:<?phpclass 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(),无需考虑具体的生产细节。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: