zoukankan      html  css  js  c++  java
  • 工厂模式和单利模式实现实例化工具

       protected static $instance=[];
        protected $namespace = 'appcommonmodel\';
        /**
         * @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;
        }
  • 相关阅读:
    存储过程
    事务
    mysql常用函数
    explain相关
    索引相关
    sql基本查询语法
    kubernetes日常记录
    Kubernetes的RBAC权限控制
    kubernetes安装ingress-nginx
    Kubernetes部署nginx-ingress
  • 原文地址:https://www.cnblogs.com/callmelx/p/11423607.html
Copyright © 2011-2022 走看看