<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Design Patterns之Facade Pattern總結

        今天看了Fa?ade模式,做個總結,如果文中有錯誤的話,還請大家多多指正。

        首先,F(xiàn)a?ade模式的作用是什么?簡化接口。比如我們買電腦,當電腦店店員把機子組裝好后交給我們,我們拿回家把顯示器鍵盤等的插頭都插到機箱后面,然后用電腦時只要按一下主機箱上的電源,電腦就啟動了,我們無需關心機箱內(nèi)部各個部件是如何啟動,是CPU先過電還是硬盤先過電。在這里,這個機箱就可以認為是一個Fa?ade,這個Fa?ade(機箱)就使啟動電腦變得很容易,就算是一個完全不懂電腦的人,也知道如何啟動電腦了。這就是Fa?ade最大作用所在:簡化接口,使得客戶程序(人)更方便地使用子系統(tǒng)(電腦)。試想,如果沒有機箱,那我們想啟動電腦豈不是得去記先啟動CPU還是先啟動硬盤?要怎么啟動它們?同時,F(xiàn)a?ade也讓系統(tǒng)耦合度更低,因為你不需要直接跟CPU、硬盤等直接接觸了。

      接下來就用代碼示例一下:
      下面是幾個電腦配件類,它們都有一個Run()方法和一個Stop()方法,分別表示它們的啟動和關閉:
                  //CPU
             internal class CPU {

             public void Run() {

                 Console.WriteLine("Cpu is running...");

             }

             public void Stop() {

                 Console.WriteLine("Cpu stopped.");

             }

          }

          //主板
              
      internal class MainBoard {

             public void Run() {

                 Console.WriteLine("MainBoard is running...");

             }

             public void Stop() {

                 Console.WriteLine("MainBoard stopped.");

             }

          }

          //硬盤
             internal class HardDisk {

             public void Run() {

                 Console.WriteLine("HardDisk is running...");

             }

             public void Stop() {

                 Console.WriteLine("HardDisk stopped.");

             }

          }

          //內(nèi)存
             internal class Memory {

             public void Run() {

                 Console.WriteLine("Memory is running...");

             }

             public void Stop() {

                 Console.WriteLine("Memory stopped.");

             }

          }

          //電源
             internal class Power {

             public void Run() {

                 Console.WriteLine("Power is running...");

             }

             public void Stop() {

                 Console.WriteLine("Power stopped");

             }

          }

      然后是個主機類(Facade): 

             /// <summary>
             /// 電腦主機(Fa?ade(外觀))
             /// </summary>
             
      public class HostComputerFacade {

             private CPU cpu;

             private MainBoard mainBoard;

             private HardDisk hardDisk;

             private Memory memory;

             private Power power;      

             //構造方法,初始化各個配件
                public HostComputerFacade() {

                 cpu = new CPU();

                 mainBoard = new MainBoard();

                 hardDisk = new HardDisk();

                 memory = new Memory();

                 power = new Power();

             }

             //啟動電腦,我不知道各配件的啟動順序如何,我們不妨假設它們就按如下順序啟動
                  
      public void TurnOn() {

                 power.Run();

                 mainBoard.Run();

                 cpu.Run();

                 memory.Run();

                 hardDisk.Run();

             }

             //關閉電腦
                  
      public void ShutDown() {

                 hardDisk.Stop();

                 memory.Stop();

                 cpu.Stop();

                 mainBoard.Stop();

                 power.Stop();

             }

          }

        然后我們就可以在Main()方法中使用“電腦”了:

                public static void Main(string[] args) {

                 HostComputerFacade hcf = new HostComputerFacade();

                

                 hcf.TurnOn();

                 //…這里做一些使用電腦的操作

                 hcf.ShutDown();
                }

      Look,客戶程序要是想“使用電腦”的話,只要實例化主機,然后按下電源開關(TurnOn()),相箱內(nèi)各部件就自動按順序啟動了,再長按電源開關幾秒鐘(ShutDown()),機箱內(nèi)各部件就按順序停止了,而如果沒有這個HostComputerFacade類的話,我們就要親自動手讓Power啟動、再讓MainBoard啟動,然后再讓CPU啟動…,關的時候也要先讓HardDisk停止,再讓Memory停止…,那豈不太麻煩了,對吧?

      總 結
      Facade模式的作用就在于簡化接口,同時更松耦合,而各個子系統(tǒng)之間一般是聯(lián)系比較緊的,就像機箱內(nèi)的各配件,在某種意義上說,它們之間的聯(lián)系是挺緊的。

      posted @ 2008-03-23 01:09  水言木  閱讀(408)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 天堂亚洲免费视频| 91精品91久久久久久| 国产微拍一区二区三区四区| 亚洲中文字幕精品久久久久久动漫| 极品美女扒开粉嫩小泬图片| 国产精品人妻久久ai换脸| 在线中文字幕国产精品| 永定县| AV最新高清无码专区| 麻豆果冻国产剧情av在线播放| 中文乱码人妻系列一区二区| 国产精品亚洲专区无码导航| 丁香五月婷激情综合第九色| 绍兴县| 国产精品自在自线视频| 99精品久久久中文字幕| 人妻va精品va欧美va| 曰韩无码二三区中文字幕| 欧美videos粗暴| 日韩精品一区二区三区四| 在线看av一区二区三区| 亚洲一区二区av免费| 人妻少妇看a偷人无码| 99久久er这里只有精品18| 国产微拍一区二区三区四区| 久久精品国产亚洲AⅤ无码| 在线观看无码不卡av| 亚洲另类激情专区小说婷婷久| 日本少妇xxx做受| 国产成人免费永久在线平台| 精品乱码一区二区三四五区 | 阜康市| 四虎影视一区二区精品| 97人妻蜜臀中文字幕| 久久久精品人妻一区二区三区| 女同精品女同系列在线观看| 免费吃奶摸下激烈视频| 久久热在线视频精品视频| 红桃视频成人传媒| 亚洲真人无码永久在线| 午夜福利看片在线观看|