
说明
1、工厂模式解决的是如何不通过new建立实例对象。
2、有一些方法可以创建目标,而不是new。
如果想改变创建的对象类型,只需要改变工厂,使用这个工厂的所有代码会自动改变。
3、通常与接口一起使用,应用程序不需要知道这些实例化类的具体细节。
只要知道工厂返回的是支持某个接口类别的类就可以轻松使用。
实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
interface Person
{
public function showInfo();
}
class Student implements Person
{
public function showInfo()
{
echo "这是一个学生 \n" ;
}
}
class Teacher implements Person
{
public function showInfo()
{
echo "这是一个老师 \n" ;
}
}
class PersonFactory
{
public static function factory( $person_type )
{
$class_name = ucfirst( $person_type );
if ( class_exists ( $class_name )){
return new $class_name ;
} else {
throw new Exception( "类:$class_name 不存在" ,1);
}
}
}
$student = PersonFactory::factory( 'student' );
echo $student ->showInfo();
$teacher = PersonFactory::factory( 'teacher' );
echo $teacher ->showInfo();
|
以上就是php工厂模式的介绍,希望对大家有所帮助。更多php学习指路:php教程
推荐操作系统:windows7系统、PHP5.6、DELL G3电脑