**1、什么是工厂方法模式?** 动态的根据传递的数据,新建相应的类的对象,我是这么理解的。 **2、在什么情况下使用工厂模式?** .只有运行时才知道需要构造那种类型的对象。 .可以轻松添加一种新类型 .每种类型都需要不同的方法 **3、优缺点** 优点:工厂方法模式可以允许系统在不修改工厂角色的情况下引进新产品。 缺点:客户可能仅仅为了创建一个特定的ConcreteProduct对象,就不得不创建一个Creator子类 **4、工厂方法模式实例:** ~~~ <?php /* *工厂方法模式 *-------------------- *@author liuxinming<1235355@qq.com> *@time 2012-06-21 */ //抽象工厂类 abstract class AbstractUser{ abstract function getUsername(); abstract function getUserID(); abstract function getUserIntegral(); } //工厂实现 class UserInfo extends AbstractUser{ //姓名 function getUserName(){ return 'Liuxinming'; } //ID function getUserId(){ return 1; } //积分 function getUserIntegral(){ return 10; } } echo UserInfo::getUserName()."<br>"; echo UserInfo::getUserId()."<br>"; echo UserInfo::getUserIntegral(); ?> ~~~ PS:这是个比较简单的工厂方法模式类,后续会不断对此类进行改进 以及加入抽象工厂模式。 每天学习PHP设计模式进行中...,坚持每天介绍和学习一个设计模式。