php工厂模式的介绍

美女程序员鼓励师

说明

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

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

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

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

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

实例

/**

 * 抽象出一个人的接口

 * Interface Person

 */

interface Person

{

    public function showInfo();

}

 

/**

 * 一个继承于抽象人接口的学生类

 * Class Student

 */

class Student implements Person

{

    public function showInfo()

    {

        echo "这是一个学生 \n";

    }

}

 

/**

 * 一个继承于抽象人接口的老师类

 * Class Teacher

 */

class Teacher implements Person

{

    public function showInfo()

    {

        echo "这是一个老师 \n";

    }

}

 

/**

 * 人类工厂

 * Class PersonFactory

 */

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电脑

以上是 php工厂模式的介绍 的全部内容, 来源链接: utcz.com/z/545077.html

回到顶部