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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [toc] ## 舉個例子 **你想要哪種咖啡?** > 咖啡機的使用非常簡單,咖啡機旁邊有已經準備好的咖啡豆,想要喝咖啡,只要往咖啡機里加入少許的咖啡豆,然后選擇杯數和濃度,再按一下開關,10分鐘后,帶著濃香味的咖啡就為你準備好了!當然,如果你想喝一些其他口味的咖啡,也可以自備咖啡豆,無論你是要拿鐵還是摩卡,這些都不是問題。 > 同一個咖啡機, 因為咖啡豆不同, 就可以產出不同的咖啡 ## 代碼示例 ```php <?php // 咖啡 class Coffee { private $name; public function __construct($name) { $this->name = $name; } public function getName() { return $this->name; } public function getTaste() { } } // 拿鐵咖啡 class CaffeLatte extends Coffee { public function __construct($name) { parent::__construct($name); } public function getTaste() { return "輕柔而香醇。"; } } // 摩卡咖啡 class MochaCoffee extends Coffee { public function __construct($name) { parent::__construct($name); } public function getTaste() { return "絲滑與醇厚。"; } } // 咖啡機 class Coffeemaker { public static function makeCoffee($coffeeBean) { $coffee = null; if ($coffeeBean == "拿鐵風味咖啡豆") { $coffee = new CaffeLatte("拿鐵咖啡"); } elseif ($coffeeBean == "摩卡風味咖啡豆") { $coffee = new MochaCoffee("摩卡咖啡"); } else { $coffee = new Coffee("普通咖啡"); } return $coffee; } } $latte = Coffeemaker::makeCoffee("拿鐵風味咖啡豆"); echo $latte->getName() . " 已為您準備好了,口感:" . $latte->getTaste() . " 請慢慢享用!" . PHP_EOL; $mocha = Coffeemaker::makeCoffee("摩卡風味咖啡豆"); echo $mocha->getName() . " 已為您準備好了,口感:" . $mocha->getTaste() . " 請慢慢享用!" . PHP_EOL; ``` ``` D:\soft\php72\php.exe D:\project\php_dp\index.php 拿鐵咖啡 已為您準備好了,口感:輕柔而香醇。 請慢慢享用! 摩卡咖啡 已為您準備好了,口感:絲滑與醇厚。 請慢慢享用! Process finished with exit code 0 ``` ## 什么是簡單工廠模式? > 專門定義一個類來負責創建其他類的實例,根據參數的不同創建不同類的實例,被創建的實例通常都具有共同的父類。 > 用來創建對象的類叫工廠類,比如上面示例中 CoffeeMaker 就是工廠類。 > 簡單工廠模式對創建過程抽象出單獨的一個類,將對象的創建和對象的使用過程進行分離,降低了系統的耦合度,使得兩者修改起來都相對容易。 ![](https://box.kancloud.cn/e66812d26bff1c09811a59cbcbcfc4f2_552x324.png) ## 優缺點 **簡單工廠的優點** 1. 抽象出一個專門的類來負責某類對象的創建,分割出創建的職責,不能直接去創建具體的對象,只要傳入適當的參數即可。 1. 使用者可以不用關注具體對象的類名稱,只知道傳入什么參數可以創建哪些需要的對象。 **簡單工廠的缺點** 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>

                              哎呀哎呀视频在线观看