單態(tài)設(shè)計(jì)模式通常包含以下三點(diǎn):
成都創(chuàng)新互聯(lián)公司主要從事網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)靈臺(tái),十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢(xún)建站服務(wù):18982081108
· 一個(gè)私有的構(gòu)造方法;(確保用戶(hù)無(wú)法通過(guò)創(chuàng)建對(duì)象對(duì)其進(jìn)行實(shí)例化)
· 一個(gè)公有的 靜態(tài)的 方法;(負(fù)責(zé)對(duì)其本身進(jìn)行實(shí)例化)
· 一個(gè)私有的 靜態(tài)的 屬性;(用于保存僅有的一個(gè)實(shí)例化對(duì)象)
單態(tài)設(shè)計(jì)模式要求的是僅有一個(gè)對(duì)象的實(shí)例,并且提供一個(gè)訪(fǎng)問(wèn)點(diǎn)
單例模式(Singleton)用于為一個(gè)類(lèi)生成一個(gè)唯一的對(duì)象。最常用的地方是數(shù)據(jù)庫(kù)連接
class singlemode
{
private static $instance=null;
private function __construct(){}
public static function getinstance($obj)
{
if(self::$instance===null)
{
self::$instance=new $obj();
return self::$instance;
}
}
public function __clone()
{
trigger_error('not allowed clone!',E_USER_ERROR);
}
public function usedisplay($method)
{
self::$instance->$method();
}
}
class test
{
public $id=null;
public function __construct()
{
}
public function display()
{
echo '單態(tài)設(shè)計(jì)模式測(cè)試!';
}
}
header('content-type:text/html;charset=utf-8');
$single=singlemode::getinstance('test');
$single->display();
$single->id=5;
echo '
'.$single->id;
$single1=singlemode::getinstance('test');
echo '
'.$single->id.'
';
?>