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

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                工廠模式,是用工廠方法代替new操作的一種模式。其實也可以將其理解成為一個創建對象的工具類。在工廠模式中,我們在創建對象時不會對客戶端暴露創建邏輯,并且是通過使用一個共同的接口來指向新創建的對象。 <br> ### ??優點: 1)?一個調用者想創建一個對象,只要知道其名稱就可以了。 2)?擴展性高,如果想增加一個產品,只要擴展一個工廠類就可以。 3)?屏蔽產品的具體實現,調用者只關心產品的接口。 <br> ### ??缺點: 每次增加一個產品時,都需要增加一個具體類和對象實現工廠,使得系統中類的個數成倍增加,在一定程度上增加了系統的復雜度,同時也增加了系統具體類的依賴。 <br> ### ??主要解決: 主要解決接口選擇的問題。 <br> ### ??何時使用: 我們明確地計劃不同條件下創建不同實例時。 <br> ### ??應用場景: 1. ?日志記錄器:記錄可能記錄到本地硬盤、系統事件、遠程服務器等,用戶可以選擇記錄日志到什么地方。 2. ?數據庫訪問,當用戶不知道最后系統采用哪一類數據庫,以及數據庫可能有變化時。 3. ?設計一個連接服務器的框架,需要三個協議,"POP3"、"IMAP"、"HTTP",可以把這三個作為產品類,共同實現一個接口。 <br> ### ??實現: ![](https://img.kancloud.cn/4b/7f/4b7f871118e056e61bb3d5bbd3b952cc_579x335.png) 接口類IApi.php ``` interface IApi{ public function draw(); } ``` 業務類 classA.php ``` class classA implements IApi{ public function draw(){ echo 'classA'; } } ``` 業務類 classB.php ``` class classB implements IApi{ public function draw(){ echo 'classB'; } } ``` API調用 index.php ``` class Factory_Demo{ public function index($type=0) { if($type == 1 ){ $obj = new App\factory\classA(); }else{ $obj = new App\factory\classB(); } $obj->draw(); } } $obj = new Factory_Demo(); $obj ->index(2); ```
                  <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>

                              哎呀哎呀视频在线观看