php工厂模式的介绍

说明

1、工厂模式解决的是如何不通过new建立实例对象。

2、有一些方法可以创建目标,而不是new。

如果想改变创建的对象类型,只需要改变工厂,使用这个工厂的所有代码会自动改变。

3、通常与接口一起使用,应用程序不需要知道这些实例化类的具体细节。

只要知道工厂返回的是支持某个接口类别的类就可以轻松使用。

实例

/**
*抽象出一个人的接口
*InterfacePerson
*/
interfacePerson
{
publicfunctionshowInfo();
}

/**
*一个继承于抽象人接口的学生类
*ClassStudent
*/
classStudentimplementsPerson
{
publicfunctionshowInfo()
{
echo"这是一个学生\n";
}
}

/**
*一个继承于抽象人接口的老师类
*ClassTeacher
*/
classTeacherimplementsPerson
{
publicfunctionshowInfo()
{
echo"这是一个老师\n";
}
}

/**
*人类工厂
*ClassPersonFactory
*/
classPersonFactory
{
publicstaticfunctionfactory($person_type)
{
//将传入的类型首字母大写
$class_name=ucfirst($person_type);

if(class_exists($class_name)){
returnnew$class_name;
}else{
thrownewException("类:$class_name不存在",1);
}
}
}

//需要一个学生
$student=PersonFactory::factory('student');
echo$student->showInfo();

//需要一个老师的时候
$teacher=PersonFactory::factory('teacher');
echo$teacher->showInfo();

以上就是php工厂模式的介绍,希望对大家有所帮助。更多php学习指路:php教程

发表回复