中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

南涧| 晋城| 静安区| 红河县| 保定市| 都安| 宽甸| 磴口县| 石景山区| 洛南县| 汉寿县| 竹溪县| 邵武市| 新竹市| 通江县| 抚顺县| 绿春县| 敖汉旗| 潮安县| 离岛区| 潜山县| 苍梧县| 墨竹工卡县| 吉林省| 南通市| 寿光市| 双辽市| 土默特左旗| 合川市| 乃东县| 泽普县| 城口县| 龙南县| 芜湖县| 汤阴县| 武宣县| 乐平市| 盐津县| 荆州市| 常熟市| 健康|