加入收藏 | 设为首页 | 会员中心 | 我要投稿 张家口站长网 (https://www.0313zz.com.cn/)- 办公协同、操作系统、混合云网络、数据湖、视觉智能!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP工厂模式、单例模式与注册树模式实例详解

发布时间:2022-07-14 11:02:22 所属栏目:PHP教程 来源:互联网
导读:这篇文章主要介绍了PHP工厂模式、单例模式与注册树模式,结合实例形式工厂模式、单例模式与注册树模式的基本概念、原理、实现方法及使用技巧,需要的朋友可以参考下。 本文实例讲述了PHP工厂模式、单例模式与注册树模式,分享给大家供大家参考,具体如下: 三
  这篇文章主要介绍了PHP工厂模式、单例模式与注册树模式,结合实例形式工厂模式、单例模式与注册树模式的基本概念、原理、实现方法及使用技巧,需要的朋友可以参考下。
 
  本文实例讲述了PHP工厂模式、单例模式与注册树模式,分享给大家供大家参考,具体如下:
 
  三种基本设计模式
 
  1、工厂模式:工厂方法或者类生成对象,而不是在代码中直接new
 
  2、单例模式:使某个类的对象仅允许创建一个
 
  3、注册模式:全局共享和交换对象
 
  工厂模式:
 
  <?php
  namespace IMooc;
  class Factory
  {
    static function createDatabase()
    {
      $db = new Database();
      return $db;
    }
  }
   
  $db = IMoocFactory::createDatabase();
  工厂模式的好处是,避免Database这个类,在很多个php文件都进行new操作,如果Database这个类发生了一些变更(修改了名字或者参数),那这时候如果不工厂模就需要修改多出了,使用工厂模式,就只需要修改工厂方法即可。
 
  单例模式:
 
  <?php
  namespace IMooc;
  class Database
  {
    protected $db;
    private function __construct()
    {
    }
    // 获取数据库操作实例
    static function getInstance()
    {
      if(self::$db){
        return self::$db;
      }else{
        self::$db = new self();
        return self::$db;
      }
    }
  }
  // 无论调用多少次,只会创建一个实例
  $db = IMoocDatabase::getInstance();
  $db = IMoocDatabase::getInstance();
  $db = IMoocDatabase::getInstance();
  $db = IMoocDatabase::getInstance();
  注册树模式:
 
  <?php
  namespace IMooc;
  class Register
  {
    protected static $objects;
    static function set($alias, $object)
    {
      self::$objects[$alias] = $object;
    }
    static function get($name)
    {
      return self::$objects[$name];
    }
    static function _unset($alias)
    {
      unset(self::$objects[$alias]);
    }
  }
  $db = IMoocRegister::get('db1');

(编辑:张家口站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读