php实现单例类工厂--传递同一个类名只产生仅仅一个对象

单例类工厂
用来传递类,并产生相应的单例对象,但是对象需要引入这个ModelFacetory类文件以及通过ModelFacetory::M(类名)这种方式来直接实例化 获得对象.

class ModelFactory{

static $class_instance=array();  // 存的是对象  单例对象

 static  function  M($class_name){

        if(

            !isset(static::$class_instance[$class_name])
                ||  // 或者
            !(static::$class_instance[$class_name] instanceof $class_name)

        ){  //static 是指当前这个方法的类   如过 静态属性中不存在这个类

            static::$class_instance[$class_name]=new $class_name();
        }

    
        return static::$class_instance[$class_name];
    }

}

每次ModelFacetory::M(类名)就会只生产一个对象

猜你喜欢

转载自blog.csdn.net/qq_36622490/article/details/84324542