• 技术文章 >PHP >PHP教程

    php工厂模式的介绍

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

    说明

    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

     */

    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学习网