<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>

                在有些系統中,存在大量相同或相似對象的創建問題,如果用傳統的構造函數來創建對象,會比較復雜且耗時耗資源,用原型模式生成對象就很高效,就像孫悟空拔下猴毛輕輕一吹就變出很多孫悟空一樣簡單。 ## 原型模式的定義與特點 原型(Prototype)模式的定義如下:用一個已經創建的實例作為原型,通過復制該原型對象來創建一個和原型相同或相似的新對象。在這里,原型實例指定了要創建的對象的種類。用這種方式創建對象非常高效,根本無須知道對象創建的細節。例如,Windows 操作系統的安裝通常較耗時,如果復制就快了很多。在生活中復制的例子非常多,這里不一一列舉了。 **原型模式就是clone就是內存拷貝,比new的好處是創建對象快速,適合大對象創建** ## 原型模式的應用場景 原型模式通常適用于以下場景。 * 對象之間相同或相似,即只是個別的幾個屬性不同的時候。 * 創建對象成本較大,例如初始化時間長,占用CPU太多,或者占用網絡資源太多等,需要優化資源。 * 創建一個對象需要繁瑣的數據準備或訪問權限等,需要提高性能或者提高安全性。 * 系統中大量使用該類對象,且各個調用者都需要給它的屬性重新賦值。 ``` /** * PHP原型模式 * 先創建一個原型對象,然后通過clone原型對象來創建新的對象 * 這樣可以避免類創建時重復的初始化操作。 * Class Prototype */ class Prototype { public function init() { //.....這里初始化工作 有200次循環復雜操作 } public function run() { //執行操作 } } //創建原型對象并初始化 $prototype = new Prototype(); $prototype->init(); //clone 原型對象 $obj1 = clone $prototype; $obj1->run(); //clone 原型對象 $obj2 = clone $prototype; $obj2->run(); ```
                  <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>

                              哎呀哎呀视频在线观看