下面小編來為各位介紹一篇關于PHP設計模式之:注冊模式入門教程,希望本文章能夠幫助到各位朋友。
當你有一組全局對象被全局訪問時可能就需要用到注冊模式 (registry),它提供了在程序中有條理的存放并管理對象 (object)一種解決方案。一個“注冊模式”應該提供get() 和 set()方法來存儲和取得對象。
注冊模式通過單一的全局的對象來獲取對其它對象的引用 實例:
<?php
/**
* PHP設計模式之注冊模式實例
*
*/
class Registry {
protected static $objects; //用于存放對象的數組
/**
* 將對象放到對象數組上
* @param string $alias 別名
* @param object $object 對象
*/
static function set($alias, $object) {
self::$objects[$alias] = $object;
}
/**
* 將對象從數組上刪除
* @param string $alias 別名
*/
static function _unset($alias) {
unset(self::$objects[$alias]);
}
/**
* 通過別名獲取對象
* @param string $alias 別名
*/
static function get($alias) {
if (array_key_exists($alias, self::$objects)) {
return self::$objects[$alias];
}
}
}
class MyObject {
public function test(){
return 'ok';
}
}
//結合工廠模式
class MyFactory {
public static function factory(){
//返回對象的實例
$myObject = new MyObject();
Registry::set("myObject", $myObject);
}
}
//調用工廠
MyFactory::factory();
//使用
echo Registry::get("myObject")->test();
Registry::_unset("myObject");
?>
好了,PHP的三種基礎模式已經介紹完了,隨后博主會繼續學習分享PHP的其他設計模式,謝謝!
新聞熱點
疑難解答