2018 04 24 PHP 設計模式之註冊樹模式

2022-05-02 09:15:09 字數 1080 閱讀 2910

之前學習了工廠模式和單例模式,明白了他們的意義。

但是我們在之後的使用中會發現乙個問題,在新建乙個例項的時候還是需要呼叫乙個單例或者工廠,之後還是造成了**和耦合和不好處理。

下面開始說一下:

為什麼使用註冊樹?

單例模式解決的了避免乙個物件在多次建立時耗費的資源。只建立乙個物件例項。

工廠模式是為了不直接通過 new 建立物件的方法。避免**高度耦合。

在兩種模式的存在下,我們更應該去統籌管理這些,不讓其遊蕩在程式的各個角落。

於是在這裡引入了註冊樹模式,不管你是怎樣產生的物件,都會在 『樹』 上註冊,在使用某個物件時候,直接從 『樹』 上拿下來就可以。 

這和我們使用全域性變數一樣的方便實用。 而且註冊樹模式還為其他模式提供了一種非常好的想法。

實現註冊樹

明白了註冊樹的實現原理之後,**可以其實可以有多種多樣的,這裡寫一種集合單例和工廠模式掛在註冊樹上的

建立乙個需要例項化的類

class test{}

建立單例模式

class single

public static function getinstance()

return $_test;

}}//工廠模式

class myfactory

}//註冊樹

class register

public static function get($alias)

public static function _unset($alias)

}// 把需要的類註冊到我們的登錄檔中

register::set('test', myfactory::factory());

// 獲取註冊的類

$test = register::get('test');

這樣我們就得到了 test() 的例項化類,雖然這樣會比較麻煩,但是隨著方法的增多,例項化的增大,就會發現他的好處和優勢。

我們在這裡給與了例項化乙個很好的基類來實現 new。

感謝參考:

php模式設計之 註冊樹模式

php設計 PHP常用設計模式

1 單例模式指在整個應用中只有乙個物件例項的設計模式 class single public rand static private instance 類直接呼叫 final private function construct private防止外部new this rand mt rand 1,...

PHP設計模式 工廠設計模式

工廠模式,如其名稱一樣,就是乙個工廠,用於建立產品。使用工廠模式的好處就是請求者只需要發出請求,具體的例項化過程交給工廠模式,省去了new的過程。並且如果後期開發,類名發生變化,只需要調整工廠模式中一行new相關 不需要修改一大堆 最簡單的工廠模式,實際上就是乙個switch case結構,通過傳入...

php設計模式

php設計模式介紹 導言 php設計模式介紹 第一章 程式設計慣用法 php設計模式介紹 第二章 值物件模式 php設計模式介紹 第三章 工廠模式 php設計模式介紹 第四章 單條模式 php設計模式介紹 第五章 註冊模式 php設計模式介紹 第六章 偽物件模式 php設計模式介紹 第七章 策略模式...