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设计模式进行中...,坚持每天介绍和学习一个设计模式。