php實現註冊樹模式

2022-06-17 07:42:12 字數 1014 閱讀 8615

註冊樹模式(registry pattern ):註冊樹模式為應用中經常使用的物件建立乙個**儲存器來存放這些物件 —— 通常通過乙個只包含靜態方法的抽象類來實現(或者通過單例模式)。也叫做註冊器模式

解決常用物件的存放問題,實現類似於全域性變數的功能。
暫無

<?php

//user類用於測試

class user{}

//註冊樹類

class registry

//獲取例項方法

static public function get($key)

return self::$objects[$key];

}//刪除例項方法

static public function _unset($key)

}$user = new user;

//存入例項

registry::set('user',$user);

//檢視例項

var_dump(registry::get('user'));

//刪除例項

registry::_unset('user');

//再次檢視例項

var_dump(registry::get('user'));

註冊樹經常與單例模式一起使用,先檢視註冊樹上是否有該例項,有就直接使用,沒有就生成乙個例項,並掛到樹上。有些時候我們還可以這樣做,讓get方法如果get不到例項的時候就自動new乙個存放起來,這樣我們使用時就不用管有沒有存放過這個例項,反正沒有的話get方法也會幫我們存放。

//獲取例項方法

static public function get($key)

return self::$objects[$key];

}

當然使用這種方式的話,檢視例項是否存在,就不能使用get方法了。因為呼叫get方法以後,不存在也會生成乙個例項。

PHP 註冊樹模式

概念 將已經建立好的物件註冊到某個容器裡,在需要使用的時候直接從容器獲取即可。優勢 解決全域性共享和交換物件,將物件註冊到全域性的樹上任何地方直接去訪問。具體註冊樹和被註冊類 示例 註冊樹 class register public static function get alias public ...

php設計模式 註冊樹模式

註冊樹模式通過將物件例項註冊到全域性物件樹上,需要的時候將物件從全域性物件樹上取下來 前面講到的單例模式解決了在整個專案中建立唯一物件的問題,工廠模式解決了不通過new解決例項物件的問題,考慮的是專案擴充套件與維護。總得來說單例模式和工廠模式可以產生更加合理的物件,那麼怎麼方便統籌呼叫這些物件呢,這...

php模式設計之 註冊樹模式

什麼是註冊樹模式?註冊樹模式當然也叫註冊模式,註冊器模式。之所以我在這裡矯情一下它的名稱,是因為我感覺註冊樹這個名稱更容易讓人理解。像前兩篇一樣,我們這篇依舊是從名字入手。註冊樹模式通過將物件例項註冊到一棵全域性的物件樹上,需要的時候從物件樹上採摘的模式設計方法。這讓我想起了小時候買糖葫蘆,賣糖葫蘆...