1. 程式人生 > >php實現單例類工廠--傳遞同一個類名只產生僅僅一個物件

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(類名)就會只生產一個物件