<ul id="qxxfc"><fieldset id="qxxfc"><tr id="qxxfc"></tr></fieldset></ul>


      前言

        今天一起來看看外觀模式,外觀模式也是我們介紹的結(jié)構(gòu)型設(shè)計模式的第五個模式了。外觀外表,有句話是這么說的人靠衣裝
      佛靠金裝。打扮的好,整理的好。外觀靠上去整整齊齊,精氣神一下就上來了。在開發(fā)中依然如此??蛻舳送瓿梢粋€功能,可能需要調(diào)用許多的接口來配合。按照開發(fā)邏輯一個一個依次對接下來??蛻舳舜a復(fù)雜,看上去一團糟。不說其他的,就表面上看起來就不怎么好吧。那么不如我們把調(diào)用的接口進行再次的封裝。統(tǒng)一規(guī)范。這樣整理下來??蛻舳司兔髁硕嗔恕?br>
      外觀模式介紹

      一、來由


        在軟件系統(tǒng)開發(fā)中,我們經(jīng)常會遇到客戶端與內(nèi)部子系統(tǒng)進行負(fù)責(zé)耦合的情況。從而導(dǎo)致客戶端隨著子系統(tǒng)的變化而變化。為了解決客戶端與子系統(tǒng)直接的高耦合,并且簡化接口的調(diào)用。也就有了外觀模式。

      二、意圖

        為子系統(tǒng)中的一組接口提供一個一致的界面,外觀模式定義了一個高層接口,這個接口使得這一子系統(tǒng)更加容易使用。

      三、案例圖

      ?

      ?

      ?

      四、外觀模式代碼示例

        看上面我們發(fā)現(xiàn)外觀模式包含以下角色:

          外觀角色:在客戶端調(diào)用外觀角色的方法,其中與一個或多個子系統(tǒng)相關(guān)聯(lián)。在運行情況下,客戶端請求傳遞到外觀角色然后傳遞給對應(yīng)的子系統(tǒng)。

          子系統(tǒng):在軟件系統(tǒng)中包含一個或者多個子系統(tǒng),子系統(tǒng)可以單獨被客戶端調(diào)用,子系統(tǒng)不知道外觀角色的存在。相對而言,也可以當(dāng)外觀角色為客戶端。

      ?


        我們看這么一個案例,通過案例我們來詳細(xì)了解外觀模式到底是怎么一回事以及如何運行的。例如我們現(xiàn)在有的軟件系統(tǒng)。新用戶在輸入手機號填入驗證碼就登錄注冊都搞定了。同時還附加了一些第一次登錄注冊的獎勵。如果不按外觀模式來的話,我們在登錄按鈕后面的客戶端依次調(diào)用了注冊、登錄、贈送獎勵等等方法。那么我們看看外觀模式如何解決呢:

      ?
      namespace Facade_Pattern { #region 外觀角色 public class FacadePattern { private
      RegisteredClass registeredClass;private LoginClass loginClass; private
      SendClass sendClass;public FacadePattern() { registeredClass = new
      RegisteredClass(); loginClass= new LoginClass(); sendClass = new SendClass(); }
      public void LoginFirst() { registeredClass.Registered(); loginClass.Login();
      sendClass.Send(); } }#endregion #region 子系統(tǒng) public class RegisteredClass {
      public void Registered() { Console.WriteLine("注冊成功"); } } public class
      LoginClass {public void Login() { Console.WriteLine("登錄成功"); } } public class
      SendClass {public void Send() { Console.WriteLine("贈送成功"); } } #endregion }
      ?
      class Program { static void Main(string[] args) { //第一次注冊登錄 FacadePattern
      facadePattern =new FacadePattern(); facadePattern.LoginFirst(); } }
      ?

      使用場景及優(yōu)缺點


        在軟件開發(fā)中,外觀模式提供了一個統(tǒng)一的接口,用來訪問那么一群接口,相當(dāng)與外觀模式是一個高層接口,使子系統(tǒng)使用更加方便,避免了客戶端與子系統(tǒng)之間的緊耦合??蛻舳酥苯油ㄟ^調(diào)用外觀角色就可以調(diào)用子系統(tǒng)中的方法了。

      一、使用場景

      1、為復(fù)雜的模塊或子模塊提供外界訪問的模塊

      2、提供子系統(tǒng)的獨立性

      3、在層次分明的結(jié)構(gòu)下可以使用外觀模式提供入口。三層架構(gòu)就是這樣的

      二、優(yōu)點

      1、減少了系統(tǒng)間的相互依賴

      2、提高了靈活性,簡化了接口,使用更加方便了

      三、缺點

      1、不符合開閉原則,如果要修改較為麻煩

      總結(jié)


        到這里外觀模式就介紹完了,外觀模式為一個或者多個子系統(tǒng)提供一個統(tǒng)一的接口,該模式定義了一個高層,使得使用子系統(tǒng)更加方便容易。并且外觀模式可以解決層次分離結(jié)構(gòu),降低客戶端與子系統(tǒng)之間的耦合。對于外觀模式側(cè)重點是整個系統(tǒng)的一種架構(gòu)設(shè)計,與之相比我們可以看看結(jié)構(gòu)型的四種設(shè)計模式。適配器模式——注重接口轉(zhuǎn)換,達(dá)到適配使用。橋接模式——注重分離現(xiàn)象與實現(xiàn),并聯(lián)合。裝飾模式——注重動態(tài)的增加職責(zé)功能。組合模式——注重部分—整體,對對象進行擴展。

        人都有以第一印象定好壞的習(xí)慣,認(rèn)為一個人好時,就會愛屋及烏,認(rèn)為一個人不好時,就會全盤否認(rèn)。

          C#設(shè)計模式系列目錄 <https://www.cnblogs.com/hulizhong/p/11394686.html>

      歡迎大家掃描下方二維碼,和我一起踏上設(shè)計模式的闖關(guān)之路吧!

        

      友情鏈接
      ioDraw流程圖
      API參考文檔
      OK工具箱
      云服務(wù)器優(yōu)惠
      阿里云優(yōu)惠券
      騰訊云優(yōu)惠券
      京東云優(yōu)惠券
      站點信息
      問題反饋
      郵箱:[email protected]
      QQ群:637538335
      關(guān)注微信

        <ul id="qxxfc"><fieldset id="qxxfc"><tr id="qxxfc"></tr></fieldset></ul>
          用力挺进她的花苞啊太视频 | 97涩涩的网站 | 黄色三级片网站 | 日韩操B视频 | 91久久精品国产91久久公交车 | 国产第七页 | 哪个网站可以看毛片 | 国产精品永久久久久久久久久 | 操逼网首页 | 三及片黄色 |