一次trail的尝试

2020-05-18  本文已影响0人  江江简书
前言:在一次优化代码的过程中用到了单例,但是又不想全部类中去复制一次单例的代码,抽离公共文件时候发现这个公共的类并不是我想要的类,最终通过trait解决公共问题
trait  commoncontrller
{
    static private $instance;
    public $mysql_conn;//定义全局连接对象
    //防止使用clone克隆对象
    private function __clone()
    {
    }

    private function __construct()
    {
        //全局创建连接对象
        global $mysql_conn_details;
        $this->mysql_conn = \pdo_mysql_fls::conn($mysql_conn_details);;
    }

    /**
     * 对象单例的实现,减少new资源的占用
     */
    static public function getInstance()
    {
        //判断$instance是否是Singleton的对象,不是则创建
        if (!self::$instance instanceof self) {
            self::$instance = new self();
        }
        return self::$instance;
    }

}
class VehicleController
{
    //引入单例模式和全局连接方法
    use commoncontrller;
}

到此就解决了单例模式的抽离公共的思想了

上一篇 下一篇

猜你喜欢

热点阅读