91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP中工廠模式、單例模式與注冊樹模式的示例分析

發布時間:2021-07-15 11:13:25 來源:億速云 閱讀:135 作者:小新 欄目:開發技術

這篇文章主要介紹了PHP中工廠模式、單例模式與注冊樹模式的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

具體如下:

三種基本設計模式

1、工廠模式:工廠方法或者類生成對象,而不是在代碼中直接new
2、單例模式:使某個類的對象僅允許創建一個
3、注冊模式:全局共享和交換對象

工廠模式:

<?php
namespace IMooc;
class Factory
{
  static function createDatabase()
  {
    $db = new Database();
    return $db;
  }
}
$db = IMooc\Factory::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 = IMooc\Database::getInstance();
$db = IMooc\Database::getInstance();
$db = IMooc\Database::getInstance();
$db = IMooc\Database::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 = \IMooc\Register::get('db1');

感謝你能夠認真閱讀完這篇文章,希望小編分享的“PHP中工廠模式、單例模式與注冊樹模式的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

东至县| 哈尔滨市| 胶州市| 商河县| 张家界市| 东安县| 郑州市| 吉首市| 彭泽县| 临城县| 吴堡县| 宜都市| 阿尔山市| 集安市| 绥江县| 平乡县| 太康县| 淳安县| 丹凤县| 吴桥县| 石首市| 陆丰市| 临汾市| 万安县| 怀化市| 烟台市| 和平县| 淮南市| 诸城市| 盐源县| 剑河县| 方城县| 额尔古纳市| 沙洋县| 泗阳县| 阜新| 灵台县| 崇左市| 扎赉特旗| 泽普县| 攀枝花市|