單例模式的作用是在多次調(diào)用對(duì)象創(chuàng)建實(shí)例的時(shí)候,返回最初創(chuàng)建的實(shí)例厢塘,而不是每次創(chuàng)建新的實(shí)例。
比如在創(chuàng)建一個(gè)DB實(shí)例的時(shí)候肌幽,一般會(huì)建立一個(gè)與DB的連接,我們不希望每次創(chuàng)建都返回新的實(shí)例牍颈,這樣容易造成連接資源的浪費(fèi),類(lèi)似這樣的場(chǎng)景煮岁,單例模式是比較適用的。
PHP的單例實(shí)現(xiàn)代碼如下:
<?php
final class DB
{
private static $_ins = null;
//防止直接new對(duì)象創(chuàng)建實(shí)例
private function __construct()
{
}
//防止clone
private function __clone()
{
}
public static function getIns()
{
if (self::$_ins === null) {
self::$_ins = new self;
}
return self::$_ins;
}
}
這樣一個(gè)簡(jiǎn)單的單例類(lèi)就完成了画机。