• 技术文章 >PHP >PHP教程

    php工厂模式的介绍

    小妮浅浅小妮浅浅2021-08-17 10:06:37原创4367

    说明

    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工厂模式
    上一篇:php单例模式如何理解 下一篇:php中Redis和Memcached的不同

    相关文章推荐

    • PHP有哪些屏蔽错误的方法• php字符串的截取方式• PHP内部函数是什么• PHP中strval()函数如何使用• PHP核心架构是什么• PHP中hash table有哪些特点• PHP中Zval是什么• php引用计数如何实现垃圾回收• php中TCP和UDP的区别• php长连接什么• php短连接是什么• php单例模式如何理解

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网