首页 > 其他 > 详细

工厂模式和单利模式实现实例化工具

时间:2019-08-28 14:40:40      阅读:153      评论:0      收藏:0      [点我收藏+]
   protected static $instance=[];
    protected $namespace = ‘app\common\model\\‘;
    /**
     * @desc: 产生对象的工厂类
     * @user: callmelx
     * @date: 2019/8/27 13:36
     */
    protected function factory($model,$namespace=‘‘){
        if(!$namespace){
            $namespace = $this->namespace;
        }
        $className = $namespace.$model;
        $obj = self::$instance[$model]??"";
        if (!($obj  instanceof $className)) {
            self::$instance[$model] = new $className();
        }
        return self::$instance[$model];
    }

 下面是基于tp5.1容器实现的:

容器在绑定以后自动是单利的模式:

protected function create($model){
        $exist = isset(app()->$model);
        if(!$exist){
            $className = $this->namespace.$model;
            $obj = app()->$model = new $className;
        }else{
            $obj = app()->$model;
        }
        return $obj;
    }

 

工厂模式和单利模式实现实例化工具

原文:https://www.cnblogs.com/callmelx/p/11423607.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!