设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 手机 数据
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP设计模式之 注册模式入门教程

发布时间:2022-02-23 15:19 所属栏目:121 来源:互联网
导读:下面小编来为各位介绍一篇关于PHP设计模式之:注册模式入门教程,希望本文章能够帮助到各位朋友。 当你有一组全局对象被全局访问时可能就需要用到注册模式 (registry),它提供了在程序中有条理的存放并管理对象 (object)一种解决方案。一个注册模式应该提供g
  下面小编来为各位介绍一篇关于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的其他设计模式,谢谢!

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读