亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

淺析php單例模式

2024-05-04 23:28:02
字體:
來源:轉載
供稿:網友
本文從設計模式的概念說起,講述了php設計模式中的單例模式,均是些基礎性知識,給初學者們一個提高的契機。
 
 

本系列文章來總結一下設計模式在PHP中的應用,這是第一篇創建型模式之單例模式。

一、設計模式簡介
首先我們來認識一下什么是設計模式:
設計模式是一套被反復使用、容易被他人理解的、可靠的代碼設計經驗的總結。
設計模式不是Java的專利,我們用面向對象的方法在PHP里也能很好的使用23種設計模式。
那么我們常說的架構、框架和設計模式有什么關系呢?
架構是一套體系結構,是項目的整體解決方案;框架是可供復用的半成品軟件,是具體程序代碼。架構一般會涉及到采用什么樣的框架來加速和優化某部分問題的解決,而好的框架代碼里合理使用了很多設計模式。

二、提煉設計模式的幾個原則:

開閉原則:模塊應對擴展開放,而對修改關閉。
里氏代換原則:如果調用的是父類的話,那么換成子類也完全可以運行。
依賴倒轉原則:抽象不依賴細節,面向接口編程,傳遞參數盡量引用層次高的類。
接口隔離原則:每一個接口只負責一種角色。
合成/聚合復用原則:要盡量使用合成/聚合,不要濫用繼承。

三、設計模式的功用?

設計模式能解決
替換雜亂無章的代碼,形成良好的代碼風格
代碼易讀,工程師們都能很容易理解
增加新功能時不用修改接口,可擴展性強
穩定性好,一般不會出現未知的問題
設計模式不能解決:
設計模式是用來組織你的代碼的模板,而不是直接調用的庫;
設計模式并非最高效,但是代碼的可讀性和可維護性更重要;
不要一味追求并套用設計模式,重構時多考慮;

四、設計模式分類
1、創建型模式:
單例模式、工廠模式(簡單工廠、工廠方法、抽象工廠)、創建者模式、原型模式。
2、結構型模式:
適配器模式、橋接模式、裝飾模式、組合模式、外觀模式、享元模式、代理模式。
3、行為型模式:
模版方法模式、命令模式、迭代器模式、觀察者模式、中介者模式、備忘錄模式、解釋器模式、狀態模式、策略模式、職責鏈模式、訪問者模式。
五、創建型設計模式
1、單例模式
目的:保證一個類僅有一個實例,并提供一個訪問它的全局訪問點。
應用場景:數據庫連接、緩存操作、分布式存儲。

 

復制代碼代碼如下:

     /**
     * 單例模式
     */
class DbConn
{
       private static $_instance = null;
       protected static $_counter = 0;
       protected $_db;
       //私有化構造函數,不允許外部創建實例
       private function __construct()
       {
              self::$_counter += 1;
       }
       public function getInstance()
       {
              if (self::$_instance == null)
              {
                     self::$_instance = new DbConn();
              }
              return self::$_instance;
       }
       public function connect()
       {
              echo "connected: ".(self::$_counter)."n";
              return $this->_db;
       }
}
/*
 * 不使用單例模式時,刪除構造函數的private后再測試,第二次調用構造函數后,_counter變成2
*/
// $conn = new DbConn();
// $conn->connect();
// $conn = new DbConn();
// $conn->connect();
//使用單例模式后不能直接new對象,必須調用getInstance獲取
$conn = DbConn::getInstance();
$db = $conn->connect();
//第二次調用是同一個實例,_counter還是1
$conn = DbConn::getInstance();
$db = $conn->connect();

 

特別說明:這里getInstance里有if判斷然后再生成對象,在多線程語言里是會有并發問題的。例如java的解決方案有二個,給方法加上synchronized關鍵詞變成同步,或者把_instanc的初始化提前放到類成員變量定義時,但是這2種方式php都不支持。不過因為php不支持多線程所以不需要考慮這個問題了。

小伙伴們是否對php設計模式的單例模式有所了解了呢?下一篇文章我們來介紹下工廠模式。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
岛国视频午夜一区免费在线观看| 91亚洲精品视频| 97国产精品久久| 日韩精品免费在线视频| 午夜精品一区二区三区视频免费看| 日韩激情视频在线播放| 久久综合伊人77777蜜臀| 91av在线网站| 精品久久久久久中文字幕一区奶水| 97精品久久久中文字幕免费| 91精品91久久久久久| 国产精品在线看| 国产视频欧美视频| 精品亚洲一区二区三区四区五区| 91亚洲午夜在线| 疯狂蹂躏欧美一区二区精品| 久久久国产一区| 国产精品热视频| 亚洲偷熟乱区亚洲香蕉av| 久久国产精品久久国产精品| 欧美伊久线香蕉线新在线| 欧美黄色片在线观看| 亚洲最大福利视频| 丰满岳妇乱一区二区三区| 国产成人小视频在线观看| 久久久这里只有精品视频| 国产欧美日韩精品专区| 成人黄色短视频在线观看| 亚洲综合中文字幕68页| 亚洲女同精品视频| 国产成人精品日本亚洲专区61| 欧美一区二区视频97| 久久久久久成人精品| 欧美老女人在线视频| 国产精品久久婷婷六月丁香| 久久久久久免费精品| 91沈先生在线观看| www.99久久热国产日韩欧美.com| 最近2019年中文视频免费在线观看| 正在播放国产一区| 福利二区91精品bt7086| 国产精品美女免费看| 亚洲码在线观看| 精品一区二区三区三区| 亚洲国产三级网| 成人美女免费网站视频| 亚洲国产欧美精品| 国产精品免费一区二区三区都可以| 日韩精品视频三区| 日韩在线免费av| 亚洲欧美国产精品| 亚洲精品自拍第一页| 欧洲成人免费视频| 国产一区二中文字幕在线看| 欧美在线激情网| xvideos成人免费中文版| 亚洲第一网站男人都懂| 7m精品福利视频导航| 国产精品美女久久| 欲色天天网综合久久| 国产精品免费久久久久久| 粉嫩老牛aⅴ一区二区三区| 亚洲一区二区自拍| 午夜精品一区二区三区在线视频| 亚洲女人天堂色在线7777| 8050国产精品久久久久久| 亚洲国产日韩精品在线| 日本一本a高清免费不卡| 深夜福利日韩在线看| 国产午夜精品一区理论片飘花| 日韩av在线天堂网| 国语自产精品视频在线看抢先版图片| 日韩av综合网站| 伊人精品在线观看| 精品magnet| 亚洲韩国日本中文字幕| 日韩av影院在线观看| 成人精品久久av网站| 欧美日韩中国免费专区在线看| 精品久久久久久久久久ntr影视| 亚洲激情成人网| 日韩电影在线观看永久视频免费网站| 福利一区福利二区微拍刺激| 亚洲综合成人婷婷小说| 日韩麻豆第一页| 国产精品视频yy9099| 北条麻妃久久精品| 大量国产精品视频| 精品国产户外野外| 亚洲在线第一页| 国产成人亚洲精品| 精品视频久久久久久| 18性欧美xxxⅹ性满足| 茄子视频成人在线| 国产精品久久久久久亚洲影视| 91精品国产91久久久久久不卡| 成人免费视频在线观看超级碰| 欧美性xxxxx| 日韩精品中文字幕在线观看| 国产欧美最新羞羞视频在线观看| 精品国产欧美一区二区五十路| 中文字幕精品在线视频| 国产亚洲a∨片在线观看| 欧美在线亚洲在线| 国产日本欧美一区二区三区| 欧美视频一区二区三区…| 久久久中文字幕| 国产不卡av在线| 欧美第一黄网免费网站| 一区二区三区视频免费| 亚洲欧美日韩在线一区| 亚洲国产日韩欧美在线99| 国产91对白在线播放| 在线观看精品自拍私拍| 日韩欧美一区二区在线| 国产精品美女免费| 精品国产美女在线| 久久伊人精品视频| 久久久精品久久| 精品视频在线播放免| 秋霞午夜一区二区| 国产精品扒开腿做爽爽爽男男| 欧美日韩国产二区| 久久人人爽人人爽人人片av高请| 怡红院精品视频| 欧美劲爆第一页| 日韩在线观看精品| 91豆花精品一区| 久久久国产91| 久久琪琪电影院| 国产成人精品免高潮在线观看| 日韩成人在线视频网站| 日韩视频免费中文字幕| 久久视频这里只有精品| 久久偷看各类女兵18女厕嘘嘘| 久久深夜福利免费观看| 国产成人黄色av| 亚洲国产精品久久久久秋霞蜜臀| 国产美女久久精品香蕉69| 久久亚洲国产精品成人av秋霞| 高清在线视频日韩欧美| 久久伊人91精品综合网站| 亚洲香蕉成人av网站在线观看| 中文字幕亚洲欧美日韩2019| 久久久久中文字幕| 色婷婷综合成人| 欧美亚洲视频在线看网址| 日韩在线观看你懂的| 亚洲人在线视频| 国产精品久久久久久久久借妻| 狠狠操狠狠色综合网| 欧美亚洲国产成人精品| 日本乱人伦a精品| 亚洲人成在线播放| 欧美成人精品三级在线观看| 欧美一区二区视频97| 日本伊人精品一区二区三区介绍| 亚洲欧洲国产伦综合| 日韩专区在线播放| 九九视频这里只有精品| 爽爽爽爽爽爽爽成人免费观看| 大荫蒂欧美视频另类xxxx| 91av福利视频| 亚洲精品一区二三区不卡|