C#物件導向設計模式第十一講:Facade 面板模式(結構型模式)

來源:互聯網
上載者:User

(根據MSDN Webcast相關課程整理)

先看以下執行個體:

左邊的方案中客戶調用程式與子系統內部的具體實作類別具有較多的耦合與互動。顯然是不理想的設計方案。隨著外部客戶程式和各子系統的演化,這種過多的耦合將面臨居多變化的挑戰。

再看右邊的方案,外部客戶程式不再直接與子系統內部類直接互動,而是通過一個Façade介面實現內外系統之間的關聯,大大降低了系統的耦合性。

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

平常我們講的介面不是指特定的Interface,而是指類暴露出來的公有方法。這些方法可以和外界接待互動。

樣本:坦克車包含了若干個子系統,如車輪系統,控制系統,引擎系統等等。但通常,我們只需要提供一個統一的操作介面,讓駕駛員使用就可以啦,而不需要他去瞭解各子系統具體的工作方式。

這裡我們通過internal關鍵字來實現子系統的隱藏,而採用組合的方法把各子系統添加到Façade中來,並暴露公有的操作方法供外界調用。

Facade模式更多的是運用於架構層級的設計,最佳化外界與各子系統之間的耦合關係。

<完>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.