之前學習了工廠模式和單例模式,明白了他們的意義。
但是我們在之後的使用中會發現乙個問題,在新建乙個例項的時候還是需要呼叫乙個單例或者工廠,之後還是造成了**和耦合和不好處理。
下面開始說一下:
為什麼使用註冊樹?
單例模式解決的了避免乙個物件在多次建立時耗費的資源。只建立乙個物件例項。
工廠模式是為了不直接通過 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設計模式介紹 第七章 策略模式...