<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之旅 廣告
                #### 外觀模式 外觀模式(Facade Pattern):外部與一個子系統的通信必須通過一個統一的外觀對象進行,為子系統中的一組接口提供一個一致的界面,外觀模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。外觀模式又稱為門面模式,它是一種對象結構型模式。 舉一個簡單的例子,相信大家都使用過 C++ 語言,他是一門編譯型語言,寫完代碼之后,我們需要經過編譯之后才能運行,在IDE中,會有一個 Build 的按鈕,點擊它即可完成編譯過程,但是這一個簡單的動作背后,卻是一系列復雜操作的協調配合,至少包括詞法分析,語法分析,生成中間代碼,生成匯編代碼以及鏈接等操作,作為普通開發人員,我們不必在意這些過程是如何完成的,只需要點擊Build按鈕,IDE就會自動幫我們完成背后的工作。那么這個Build按鈕就是IDE為我們提供的高級接口,通過他來完成各種子系統的協調工作。 `角色:` Facade:外觀角色,提供高級接口 SubSystem:子系統角色,負責各自的功能實現 `UML 類圖` ![此處輸入圖片的描述](https://doc.shiyanlou.com/document-uid108299labid2297timestamp1486374473372.png) `示例代碼`:`Facade.class.php` ~~~php <?php class SystemA { public function operationA() { echo "operationA <br>"; } } class SystemB { public function operationB() { echo "operationB <br>"; } } class SystemC { public function operationC() { echo "operationC <br>"; } } class Facade { protected $systemA; protected $systemB; protected $systemC; function __construct() { $this->systemA = new SystemA(); $this->systemB = new SystemB(); $this->systemC = new SystemC(); } public function myOperation() { $this->systemA->operationA(); $this->systemB->operationB(); $this->systemC->operationC(); } } $facade = new Facade(); $facade->myOperation(); ~~~ 使用外觀模式最大的優點就是子系統與客戶端之間是松耦合的關系,客戶端不必知道具體有哪些子系統,也無需知道他們是如何工作的,通過引入一個外觀類,提供一個客戶端間接訪問子系統的高級接口。子系統和外觀類可以獨立運作,修改某一個子系統的內容,不會影響到其他子系統,也不會影響到外觀對象。不過它的缺點就是它不夠靈活,當需要增加一個子系統的時候,需要修改外觀類。
                  <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>

                              哎呀哎呀视频在线观看