<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 5-2 單例模式 ### 第一步:構造方法變成私有方法 *D:\wamp\www\demo\oop\framework\Think\Database.php* ~~~ private function __construct() { // } ~~~ ~~~ Fatal error: Call to private Think\Database::__construct() from invalid context ~~~ 此時,屏蔽了使用 `new` 實例化這個類的方法。 ### 第二步:聲明一個靜態的獲取對象的方法 *D:\wamp\www\demo\oop\framework\index.php* ~~~ static protected $obj; private function __construct() { // } static public function getDbInstance() { if (self::$obj) { return self::$obj; } else { self::$obj = new self(); return self::$obj; } } ~~~ 靜態方法不能訪問非靜態成員,所以聲明了一個靜態屬性用來存儲對象。單例模式指的是:當對象實例化后,就直接返回該對象,而不再生成新的對象。 ### 第三步:將工廠類中的實例化也采用單例模式 *D:\wamp\www\demo\oop\framework\Think\Factory.php* ~~~ static function createDatabase() { return new Database(); } ~~~ 改為 ~~~ static function createDatabase() { return Database::getDbInstance(); } ~~~ ### 第四步 ~~~ $obj = Think\Database::getDbInstance(); $obj = Think\Factory::createDatabase(); var_dump($obj); ~~~ 在 index.php 文件中實例化單例模式的類,無論實例化多少次,都只生成1個對象。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看