理解设计模式及依赖注入
1.单例模式是啥?
单例模式作用是什么? 为什么使用单例模式?
单例:只能new一个类()
class Test
{
//用于保存实例化的对象
private static $instance=null;
//自己用
private $db = null;
//获取当前容器的实例
public static function getInstance($config=array())
{
if(self::$instance == null)
{
self::$instance = new self($config);
}
return self::$instance;
}
//构造方法设置为私有,禁止外部使用
private function __construct($config = array())
{
$dsn = sprintf('mysql:host=%s:dbname=%s',$config['db_host'],$config['db_name']);
$this->db = new PDO($dsn,$config['db_user'],$config['db_pass'])
}
//获取数据库
public function db()
{
return $this->db;
}
//生命私有方法,禁止克隆对象
private function __clone(){
}
//禁止重建对象
private function __wakeup(){
}
}
$db = Test::getInstance($config);
四私一公。