讀書筆記10:面板模式

來源:互聯網
上載者:User

1、  概念

為子系統中的一組介面提供一個一致的介面,此模式定義了一個高層介面,該介面使子系統更加容易使用。

2、  模型

    public class ModularA    {        public void ModularAMethod()        {            Console.WriteLine("A模組的方法。");        }    }    public class ModularB    {        public void ModularBMethod()        {            Console.WriteLine("B模組的方法。");        }    }    public class ModularC    {        public void ModularCMethod()        {            Console.WriteLine("C模組的方法。");        }    }      public class FaCade    {        private ModularA mda;        private ModularB mdb;        private ModularC mdc;         public FaCade()        {            mda = new ModularA();            mdb = new ModularB();            mdc = new ModularC();        }        public void FaCadeMethod()//該方法負責對外的聯絡        {            mda.ModularAMethod();            mdb.ModularBMethod();            mdc.ModularCMethod();        }    }

用戶端

//如果不用面板模式,則用戶端分別要調用ModularA,ModularB,ModularC,耦合就強了。//ModularA mda = new ModularA();//ModularB mdb = new ModularB();//ModularC mdc = new ModularC();//mda.ModularAMethod();//mdb.ModularBMethod();//mdc.ModularCMethod(); //使用面板模式,用戶端只關心FaCade的方法,之和這一個類發生聯絡,減少了耦合。FaCade fd = new FaCade();fd.FaCadeMethod();Console.ReadLine();

 結果

 

    其實這種模式,在平時寫代碼時那是經常使用的,有時候寫一個單獨的功能模組,就有這樣的一個類,負責與外界交流,接受傳入的參數,並負責傳出結果,外部是不需要關心模組如何?,往往是引用這個類傳入某些值,該類再傳出結果,至於如何?功能那就是這個模組的事了。因此減少了這個模組與外界的接觸,而且如果該模組的內部演算法除了問題,不會影響其他模組運行,只是表現在結果不正確而已。而且我一般寫單獨模組都把裡面的public除了要和外界互動的類,其它都寫成internal,強制外面訪問不到內部的細節。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.