<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、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                **定義:**外觀模式(Fa?ade Pattern),為子系統中的一組接口提供一個一致的界面,外觀模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。 類型:結構型模式。 適用性: 1. 當子系統非常復雜時,使得客戶調用非常麻煩,不便于使用。這個時候就可以使用外觀模式將這些子系統封裝起來,提供一個統一而簡單接口供客戶端使用。 1. 當需要構建一個層次結構的子系統時,使用外觀模式可以給子系統定義進入口。 概述: ?????????外觀模式主要依賴“迪米特法則”,即盡量減少與其他實體之間的聯系。例如,用戶和一臺電腦。如果用戶想開機,他不需要云單獨打開電源,再啟動CPU,再啟動硬盤電源,再連接顯示器。用戶不需要知道電腦開機完成了哪些工作,用戶只想開機了就可以正常使用電腦就行了。用戶要做的,只是按一下開機鍵,所有的一切都會在這一個開機動作中自動完成。減少用戶對電腦內部的了解,這樣能夠使得用戶更方便地使用電腦,而且如果電腦開機有問題,也不需要云從用戶身上找,直接去電腦上面找就可以,能夠更方便地定位問題。 類圖: ![](https://box.kancloud.cn/2016-08-19_57b6b466414b1.jpg) 參與者: 1. Client,客戶端,直接與Computer交互。 1. Computer,由Display,Power,HardDisk幾個子系統構成。并且提供一個Startup的接口用來一次性控制所有子系統啟動。 1. Display,Power,HardDisk,子系統,完成Computer指派的功能。 示例代碼: ~~~ // C# namespace?Design11 { ???class?Power ???{ ???????public?void?Start() ???????{ ???????????Console.WriteLine("啟動電源"); ???????} ???} ???class?Display ???{ ???????public?void?DisplayContent() ???????{ ???????????Console.WriteLine("顯示內容"); ???????} ???} ???class?HardDisk ???{ ???????public?void?ReadDisk() ???????{ ???????????Console.WriteLine("讀取硬盤數據"); ???????} ???} ???//?Fasade ???class?Computer ???{ ???????private?Power?power?=?new?Power(); ???????private?Display?display?=?new?Display(); ???????private?HardDisk?hDisk?=?new?HardDisk(); ???????public?void?Startup() ???????{ ???????????power.Start(); ???????????display.DisplayContent(); ???????????hDisk.ReadDisk(); ???????} ???} ???//?Client ???class?Program ???{ ???????static?void?Main(string[]?args) ???????{ ???????????Computer?computer?=?new?Computer(); ???????????Console.WriteLine("準備啟動電腦"); ???????????computer.Startup(); ???????} ???} } ~~~ 優點:使得代碼更加模塊化,更方便調用以及查找問題。 **注意:**如果有多個子系統需要進行通訊時,最好是通過Facade來中轉。 參考資料: 1. 《設計模式——可復用面向對象軟件基礎》 1. 《大話設計模式》 1. 《Head?First設計模式》
                  <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>

                              哎呀哎呀视频在线观看