3.5 Facade(外观)
【返回目錄】
外觀模式適用于系統(tǒng)內(nèi)部有太多獨(dú)立的子系統(tǒng),并且從用戶的角度來考慮又必須提供一致且相對簡單的接口的情景,因此我覺得用飛機(jī)來做一個(gè)形象的描述會比較合適,請不要把飛機(jī)想象的過于復(fù)雜(當(dāng)然,想象得過于簡單也是錯(cuò)誤的)。
飛機(jī)內(nèi)部有眾多的子系統(tǒng),假如你有機(jī)會進(jìn)入飛機(jī)內(nèi)部(不是指客艙)看看,你就會看到數(shù)不清的各種線路,這些線路連接著各種子系統(tǒng),并且子系統(tǒng)之間的干擾并不多(否則飛機(jī)很容易失控),但是盡管飛行員是經(jīng)歷了4年本科學(xué)習(xí)并且畢業(yè)后還時(shí)常參加各種實(shí)際飛行和訓(xùn)練,如果飛機(jī)的設(shè)計(jì)師們覺得這樣的高智商人才一定可以很輕松地操作復(fù)雜的機(jī)器,那么飛機(jī)也就不再是最安全的交通工具了(拋開成見吧,這是事實(shí))。
我們簡單羅列幾個(gè)子系統(tǒng):動力系統(tǒng)、導(dǎo)航系統(tǒng)和無線電系統(tǒng)。比如動力系統(tǒng),飛行員向前推動節(jié)流閥,飛機(jī)的引擎將加速工作并將飛機(jī)推上藍(lán)天;導(dǎo)航系統(tǒng)相當(dāng)重要,否則飛機(jī)就成了瞎子一樣,飛行員可以通過GPS來獲知自己當(dāng)前的飛行位置、高度和軌跡等;無線電系統(tǒng)也很重要,飛機(jī)的通訊就全靠它了(為了保障飛行安全,飛機(jī)上禁止點(diǎn)狼煙),很多時(shí)候飛行員都要借助ILS(Instrument Landing System,儀表著陸系統(tǒng))來保證著陸的安全。但是,飛行員的培養(yǎng)側(cè)重于對飛機(jī)的駕駛技術(shù)而不是修理,飛行員通過無線電來接受機(jī)場ILS信號時(shí)并不非要搞清楚電子信號是從哪里接收到又經(jīng)過哪些電子線路才到達(dá)駕駛艙的;飛行員向前推動節(jié)流閥的時(shí)候,也不是必須知道信號是通過哪些管道到達(dá)發(fā)動機(jī)并控制其轉(zhuǎn)速和油量才能使飛機(jī)加速的。飛機(jī)之所以安全,有很重要一部分功能是設(shè)計(jì)師們給飛行員提供了一套相對簡單、明了的操作界面。
1: using System; 2:? 3: namespace Autumoon.DesignPatterns.Facade 4: { 5: public class EngineSubSystem 6: { 7: public void Throttle() 8: { 9: Console.WriteLine("Throttle of Engine Sub System."); 10: } 11: } 12:? 13: public class NavigationSubSystem 14: { 15: public void GPS() 16: { 17: Console.WriteLine("GPS of Navigation Sub System."); 18: } 19: } 20:? 21: public class RadioSubSystem 22: { 23: public void ILS() 24: { 25: Console.WriteLine("ILS of Radio Sub System."); 26: } 27: } 28:? 29: public class FacadeDemo 30: { 31: public void Flight() 32: { 33: new EngineSubSystem().Throttle(); 34: new NavigationSubSystem().GPS(); 35: new RadioSubSystem().ILS(); 36: } 37: } 38: }其實(shí)經(jīng)過一段時(shí)間的訓(xùn)練,您也可以駕駛飛機(jī)的。
1: static void Main(string[] args) 2: { 3: #region Facade 4: new FacadeDemo().Flight(); 5: #endregion 6:? 7: Console.ReadLine(); 8: }轉(zhuǎn)載于:https://www.cnblogs.com/Autumoon/archive/2008/02/20/1074885.html
總結(jié)
以上是生活随笔為你收集整理的3.5 Facade(外观)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#3.0官方编码规范
- 下一篇: 天涯对房市预测比较准的是孤独的思想