• 技术文章 >PHP >PHP教程

    php工厂模式的介绍

    小妮浅浅小妮浅浅2021-06-11 11:43:49原创46

    1、说明

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

    它有一些方法可以创建目标,而不是new。如果想改变创建的对象类型,只需要改变工厂,使用这个工厂的所有代码会自动改变。

    工厂模式通常与接口一起使用,应用程序不需要知道这些实例化类的具体细节,只要知道工厂返回的是支持某个接口类别的类就可以轻松使用。

    2、实例

    /**
     * 抽象出一个人的接口
     * 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教程

    专题推荐:php工厂模式
    上一篇:php单例模式如何理解 下一篇:php中Redis和Memcached的不同

    相关文章推荐

    • PHP有哪些屏蔽错误的方法• php字符串的截取方式• php上传文件限制大小如何解决• PHP内部函数是什么• PHP中strval()函数如何使用• php中get和Post方法的不同• PHP核心架构是什么• PHP中hash table有哪些特点• PHP中Zval是什么• php资源类型变量是什么• php引用计数如何实现垃圾回收• php中TCP和UDP的区别• php长连接什么• php短连接是什么• php单例模式如何理解
    品易云

    全部评论我要评论

  • 取消发布评论发送
  • 

    Python学习网