ThinkPHP容器之注冊樹模式

學習容器源碼之前必須要學會另外一個設計模式注冊樹模式,這種設計模式也是容器的一個核心了。

二、注冊樹模式

為什么在這里說這個注冊樹模式,因為在框架中注冊樹模式就是一個主導位置,所以必須去了解它!

那什么是注冊樹模呢!

  • 注冊樹模式就是將對象實例注冊到一顆樹上(這里的樹可不是真的樹啊!就是注冊到一個全局的屬性里邊)
  • 然后可以通過內(nèi)部方法從全局的樹上獲取對應的對象實例。

這樣說的話肯定也不能更好的理解,接下來咔咔帶大家看一個簡單的案例來簡單的了解一下。

一個注冊樹模式需要的東西就是四個,注冊樹的池子,將對象掛載到注冊池里,從注冊池里獲取對象,從注冊池里卸載對象。

如下圖是咔咔寫的一個簡單的注冊樹模式。

代碼如果看不懂的就需要去補補基礎了哈!

ThinkPHP容器之注冊樹模式ThinkPHP容器之注冊樹模式接下來在到同一目錄創(chuàng)建一個TestTree文件

ThinkPHP容器之注冊樹模式來到控制器測試寫的注冊樹模式是否有問題

在做測試的時候一定要注意命名空間問題哈!這里的kaka目錄是之前在類的自動加載哪里配置的,如有不會的可以去第一期文章查看。

這里就相當于先把TestTree這個類實例化出來

然后使用注冊樹模式把這個實例注冊到object樹池子中

最后使用get方式將這個類獲取出來就可以直接調(diào)用TestTree中的方法了。

ThinkPHP容器之注冊樹模式最后看一下最終打印結(jié)果,結(jié)果就是TestTree類中g(shù)etTreeContent方法的返回值。

ThinkPHP容器之注冊樹模式注冊樹模式就是以上咔咔說明的這些內(nèi)容,就是不去針對源碼學習,這些內(nèi)容也是我們必須要去學會使用的。

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

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊12 分享