萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> PHP設計模式之:注冊模式入門教程

PHP設計模式之:注冊模式入門教程

下面小編來為各位介紹一篇關於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的其他設計模式,謝謝!

copyright © 萬盛學電腦網 all rights reserved