前言:在一次优化代码的过程中用到了单例,但是又不想全部类中去复制一次单例的代码,抽离公共文件时候发现这个公共的类并不是我想要的类,最终通过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;
}
到此就解决了单例模式的抽离公共的思想了
网友评论