<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之旅 廣告
                > **設計模式-簡單工廠模式** ## 說明 ## **工廠模式是創建型模式的一種,分為簡單工廠模式,工廠模式,抽象工廠模式,簡單工廠可以稱之為工廠模式的一個特例** ---------- ##簡單工廠## 簡單工廠:將調用者和創建者分離,實現解耦,調用者直接向工廠請求,通過工廠去選擇需要實例化的對象,用一個單獨的類來做這個創建實例的過程。 ![請輸入圖片描述][1] <h5>服務端操作類</h5> <?php /** * Interface db 鏈接數據庫接口 */ interface db{ function conn(); //連接方法 } //服務端接口 /** * Class dbMysql */ class dbMysql implements db { public function conn(){ echo "連接上了Mysql"; } } /** * Class dbSql */ class dbSql implements db{ public function conn(){ echo "連接上了sql"; } } <h5>工廠類</h5> /** * Class Factory */ class Factory{ public static function creatDB($type){ if($type == "mysql"){ return new dbMysql(); }elseif($type == 'sql'){ return new dbSql(); }else{ throw new Exception("沒有該類型數據庫"); } } } $objSql=Factory::creatDB('mysql'); $objSql->conn(); 通過工廠類來控制連接不同的數據庫,如果要新增一個oracle連接,直接創建一個dbOracle來繼承db類,然后在工廠類中進行創建就好。 ##工廠模式## 工廠模式:工廠模式是簡單工廠的晉級版,在簡單工廠模式下,如果需要新增一個類,需要更改工廠類代碼,違反了封閉開放原則,而工廠模式則解決的這個問題。 ![https://blog.zxliu.cn/usr/uploads/2020/11/1966401635.png][2] <?php /** * Interface db 鏈接數據庫接口 */ interface db{ function conn(); //連接方法 } //服務端接口 /** * Class dbMysql */ class dbMysql implements db { public function conn(){ echo "連接上了Mysql"; } } /** * Class dbSql */ class dbSql implements db{ public function conn(){ echo "連接上了sql"; } } interface Factory{ function creatDB(); } class MysqlFactory implements Factory { function creatDB() { // TODO: Implement creatDB() method. return new dbMysql(); } } class SqlFactory implements Factory{ /** * @return mixed */ function creatDB() { // TODO: Implement creatDB() method. return new dbSql(); } } $db=new MysqlFactory(); $objSql = $db->creatDB(); $objSql ->conn(); 如果要新增連接方式,直接新增新增連接方式,新增工廠創建類就好。 ## 結尾 ## <p style="background-image: -webkit-linear-gradient(left, #3498db, #f47920 10%, #d71345 20%, #f7acbc 30%,#ffd400 40%, #3498db 50%, #f47920 60%, #d71345 70%, #f7acbc 80%, #ffd400 90%, #3498db);color: transparent;-webkit-text-fill-color: transparent;-webkit-background-clip: text;text-align:center;"> 心如花木,向陽而生。 </p> [1]: https://blog.zxliu.cn/usr/uploads/2020/11/386091710.png [2]: https://blog.zxliu.cn/usr/uploads/2020/11/1966401635.png
                  <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>

                              哎呀哎呀视频在线观看