<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之旅 廣告
                [toc] ## 舉個例子 > 《閃電俠》里面一個反派叫 Danton Black 的超級人類,擁有復制自身的超能力,能夠變身出六個自己 > 程序員就需要這種能力,一個寫UI, 一個寫前端, 一個寫APP, 一個建數據庫, 一個寫后臺, 一個維護服務器... ## 代碼示例 ```php <?php // 人 class Person { private $name; private $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } public function showMyself() { echo "我是{$this->name}, 年齡{$this->age}" . PHP_EOL; } public function coding() { echo "我是一個碼農, 我在用雙手改變世界以及我的發際線..." . PHP_EOL; } public function reading() { echo "閱讀是我快樂, 我愛閱讀勝過愛左手..." . PHP_EOL; } public function fallInLove() { echo "神鬼狐仙, 風月無邊..."; } public function copy() { return clone($this); } } // 代碼測試 $tony = new Person("Tony", 26); $tony->showMyself(); $tony->coding(); $tony1 = $tony->copy(); $tony1->showMyself(); $tony1->reading(); $tony2 = $tony->copy(); $tony2->showMyself(); $tony2->fallInLove(); ``` ``` D:\soft\php72\php.exe D:\project\php_dp\index.php 我是Tony, 年齡26 我是一個碼農, 我在用雙手改變世界以及我的發際線... 我是Tony, 年齡26 閱讀是我快樂, 我愛閱讀勝過愛左手... 我是Tony, 年齡26 神鬼狐仙, 風月無邊... Process finished with exit code 0 ``` ## 什么是克隆模式? > 通過拷貝自身的屬性來創建一個新對象的過程叫做克隆模式。 > 克隆模式的核心就是一個 Clone 方法,Clone 方法的功能就是拷貝父本的所有屬性 > 分配一塊新的內存空間給新的對象; 拷貝父本對象的所有屬性。 > 深拷貝:賦值時值完全復制,完全的copy,對其中一個作出改變,不會影響另一個 > 淺拷貝:賦值時,引用賦值,相當于取了一個別名。對其中一個修改,會影響另一個 > PHP中, = 賦值時,普通對象是深拷貝,但對對象來說,是淺拷貝。也就是說,對象的賦值是引用賦值。 > php5中,對象的` = `賦值和傳遞都是引用。要想實現拷貝副本,php提供了`clone`函數實現。 ![](https://box.kancloud.cn/b2634e21f7b00d8bf4cffe0610c08e64_322x284.png) ## 優缺點 **克隆模式的優點** 1.克隆模式是通過內存拷貝的方式進行復制,比 new 的方式創建對象性能更好; 1.通過深拷貝的方式,可以方便地創建一個具有相同屬性和行為的另一個對象,特別是對于復雜對象,方便性尤為體現。 **克隆模式的缺點** 1. 通過克隆的方式創建對象,不會執行類的構造函數,這不一定是缺點,但大家使用的時候需要注意這一點。 ## 應用場景 1. 如果創建新對象(如復雜對象)成本較大,我們可以利用已有的對象進行復制來獲得。 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>

                              哎呀哎呀视频在线观看