單態(tài)模式(Singleton Pattern):
定義:?jiǎn)螒B(tài)模式指的是在應(yīng)用程序的范圍內(nèi)只對(duì)指定的類創(chuàng)建一個(gè)實(shí)例,。
單態(tài)模式能夠確保某個(gè)類只生成一個(gè)實(shí)例對(duì)象,,它具有以下特點(diǎn):
通常包含一個(gè)私有構(gòu)造函數(shù),,這樣確保了用戶無(wú)法通過(guò)創(chuàng)建對(duì)象或者克隆的方式對(duì)其進(jìn)行實(shí)例化,。
通常包含一個(gè)公有靜態(tài)方法,負(fù)責(zé)對(duì)其本身進(jìn)行實(shí)例化,。
通常包含一個(gè)私有屬性,,保存對(duì)象實(shí)例。
示例代碼如下:
<?php
class Singleton { private static $instance = null; private function __construct() {} public static function getInstance() { if(self::$instance == null) { self::$instance = new Singleton(); } return self::$instance; } public function printString() { echo "這是一個(gè)單態(tài)模式的示例"; } } $instance = Singleton::getInstance();
$instance->printString(); ?> 在上述代碼中,,私有構(gòu)造函數(shù)__construct()用來(lái)確保Singleton類無(wú)法通過(guò)創(chuàng)建對(duì)象或克隆的方式對(duì)其進(jìn)行實(shí)例化,,所以Singleton類只能通過(guò)公有靜態(tài)方法getInstance()生成一個(gè)該類的實(shí)例并存儲(chǔ)在私有靜態(tài)屬性$instance中。
單態(tài)模式的運(yùn)行結(jié)果:
|
|
來(lái)自: 糖伯虎點(diǎn)秋香 > 《PHP》