国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

php教程:php設計模式介紹之單條模式

2020-03-24 17:25:24
字體:
來源:轉載
供稿:網(wǎng)友
上文:http://c2.com/cgi/wiki?GlobalVariablesAreBad)。當你需要一個特殊類的唯一實例時,使用這個名字叫單件的模式。基于單件模式的類能實例化和初始化這個類的一個實例,并且提供每時每刻絕對相同的連接。一般情況下使用名為getInstance()的靜態(tài)方法實現(xiàn)。關鍵問題是,如何在每時每刻獲得一個精確統(tǒng)一的實例。請看下面的例子:// PHP4
function TestGetInstance() {
$this- assertIsA(
$obj1 = DbConn::getInstance(),
DbConn ,
The returned object is an instance of DbConn );
$this- assertReference(
$obj1,
$obj2 = DbConn::getInstance(),
Two calls to getInstance() return the same object );
}注釋:assertReference
assertReference() 方法確保兩個被傳遞的參數(shù)引用自相同的PHP變量。
在PHP4中,這里斷言兩個被測試的參數(shù)的卻是相同的對象。assertReference() 這個方法在移植到PHP5以后也許就不推薦使用了。這個test方法有兩個斷言:第一個判斷第調用靜態(tài)方法DbConn::getInstance()返回的值是DbConn對象的實例,第二個用來判斷第二次調用getInstance()方法返回得值引用的是相同的對象實例,這意味著他們使用的是同一個對象。除了斷言代碼預期的執(zhí)行結果,Test也預示了getInstance()的正確用法(PHP4):$local_conn_var= DbConn::getInstance()。引用(= )靜態(tài)方法的返回值賦值給了這個局部變量。再寫另外一段測試代碼:直接用 new 來實例化一個單件類會引起某些類型的錯誤。test代碼如下:function TestBadInstantiate() {
$obj = new DbConn;
$this- assertErrorPattern(
/(bad|nasty|evil|do not|don/ t|warn).* .
(instance|create|new|direct)/i );
}這段代碼直接創(chuàng)建了一個 DbConn 的實例,將會引起PHP報錯。為了讓代碼更穩(wěn)定,我們用PCREhtml' target='_blank'>正則表達式來匹配報錯信息。(顯示報錯信息的確切措詞并不重要。)html教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 巴彦淖尔市| 眉山市| 新安县| 襄城县| 分宜县| 宜宾市| 白河县| 商城县| 荔浦县| 屏山县| 蒙阴县| 保德县| 静宁县| 瓮安县| 青冈县| 鄂托克前旗| 铅山县| 靖江市| 平谷区| 安国市| 吴桥县| 宁乡县| 峨山| 都兰县| 临澧县| 吉木萨尔县| 屏山县| 得荣县| 基隆市| 红桥区| 庐江县| 永登县| 南木林县| 乡宁县| 阳原县| 襄樊市| 镇赉县| 镇原县| 牟定县| 新闻| 宜阳县|