站長資訊網
最全最豐富的資訊網站

你必須要會的設計模式之單例模式

?

閱讀框架容器源碼之前必須需要了解的一個知識點就是單例模式

?

前言

在這之前已經剖析過了類的自動加載、配置文件加載的源碼解析,本文為第三期的文章,主要針對容器以及門面類的實現,解析源碼。以及學習實現此功能的一些知識點。

一、單例模式

在學習容器以及門面之前需要必須了解的倆個設計模式,單例模式、注冊樹模式。

先對單例模式做一個簡單的說明。

  • 擁有一個構造函數,并且屬性為private
  • 擁有一個靜態成員變量來保存類的實例
  • 擁有一個靜態方法來訪問這個實例

一下就是咔咔實現的一個簡單的單例模式,對照一下上面的三大特性看是否一致。

靜態變量為instance

擁有構造并且還是私有的

最后一個就是有一個getInstance這個靜態方法

你必須要會的設計模式之單例模式接下來進行一下簡單的測試

還是在index控制器中做測試,為了證實其類只被實例化過一次,調用了其四次

你必須要會的設計模式之單例模式訪問這個方法來看一下

new-class只執行了一次,就直接證明了創建的類只實例化了一次。你必須要會的設計模式之單例模式在這里咔咔之前有過一個疑問就是,這里的構造函數為什么要使用私有的屬性。

你之前有過這個疑問嗎?咔咔帶你一起來解答一下

在本類定義私有屬性的構造方法是為了防止其類在外部被實例化。

當在外部實例化這個類就會報下圖的錯。

你必須要會的設計模式之單例模式那么為什么會在這里提一嘴單例模式呢!是因為在接下來的學習容器的源碼中會使用到

例如下圖thinkphp/library/think/Container.php類中就存在一個獲取當前容器的實例。

你必須要會的設計模式之單例模式截止到這里單例模式就簡單的了解完了,了解單例模式也是為了更好的理解容器。

?

堅持學習、堅持寫博、堅持分享是咔咔從業以來一直所秉持的信念。希望在偌大互聯網中咔咔的文章能帶給你一絲絲幫助。我是咔咔,下期見。

?

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
日韩成人免费视频| 久久精品国产99久久久| 最新精品亚洲成a人在线观看| 日韩精品一区二三区中文| 国产精品99精品一区二区三区| 亚洲精品永久www忘忧草| 久久精品99国产精品日本| 亚洲日韩国产精品第一页一区| 久久93精品国产91久久综合| 日韩人妻无码免费视频一区二区三区| 中文字幕在线日韩| 四虎成人精品在永久免费| 精品国产一区二区三区在线| 国产精品亚洲av色欲三区| 久9热视频这里只精品18| 国产精品爽黄69天堂a| 亚洲精品视频专区| 精品性影院一区二区三区内射| 久久婷婷国产综合精品| 久久九九精品国产av片国产| 国产成人久久精品一区二区三区 | 成人无码精品1区2区3区免费看| 一本久久A久久免费精品不卡 | 亚洲国产精品人人做人人爽| 日韩精品福利视频一区二区三区| 中文字幕国产日韩| 亚洲第一页日韩专区| 日韩精品无码Av一区二区| 日韩少妇内射免费播放| 亚洲日韩国产精品乱| 午夜激情经典日韩| 亚洲日韩精品A∨片无码加勒比| 日韩亚洲人成在线综合日本| 中文字幕日韩三级| 日韩精品专区AV无码| 日韩免费在线视频| 日韩去日本高清在线| 凹凸69堂国产成人精品视频| 国产福利电影一区二区三区久久久久成人精品综合 | 欧美日韩久久久精品A片| 亚洲av日韩aⅴ无码色老头|