隨筆 - 1  文章 - 0  trackbacks - 0
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          •  

          最新評(píng)論


          文章屬于轉(zhuǎn)載


          命令模式也是開發(fā)中常見的一個(gè)模式,也不是太難,比較簡(jiǎn)單,下面來(lái)詳細(xì)的寫一下命令模式。

          命令模式(Command)

          1  場(chǎng)景問(wèn)題

           1.1  如何開機(jī)

                  估計(jì)有些朋友看到這個(gè)標(biāo)題會(huì)非常奇怪,電腦裝配好了,如何開機(jī)?不就是按下啟動(dòng)按鈕就可以了嗎?難道還有什么玄機(jī)不成。
                  對(duì)于使用電腦的客戶——就是我們來(lái)說(shuō),開機(jī)確實(shí)很簡(jiǎn)單,按下啟動(dòng)按鈕,然后耐心等待就可以了。但是當(dāng)我們按下啟動(dòng)按鈕過(guò)后呢?誰(shuí)來(lái)處理?如何處理?都經(jīng)歷了怎樣的過(guò)程,才讓電腦真正的啟動(dòng)起來(lái),供我們使用。
                  先一起來(lái)簡(jiǎn)單的認(rèn)識(shí)一下電腦的啟動(dòng)過(guò)程,了解一下即可。

          • 當(dāng)我們按下啟動(dòng)按鈕,電源開始向主板和其它設(shè)備供電
          • 主板的系統(tǒng)BIOS(基本輸入輸出系統(tǒng))開始加電后自檢
          • 主板的BIOS會(huì)依次去尋找顯卡等其它設(shè)備的BIOS,并讓它們自檢或者初始化
          • 開始檢測(cè)CPU、內(nèi)存、硬盤、光驅(qū)、串口、并口、軟驅(qū)、即插即用設(shè)備等等
          • BIOS更新ESCD(擴(kuò)展系統(tǒng)配置數(shù)據(jù)),ESCD是BIOS和操作系統(tǒng)交換硬件配置數(shù)據(jù)的一種手段
          • 等前面的事情都完成后,BIOS才按照用戶的配置進(jìn)行系統(tǒng)引導(dǎo),進(jìn)入操作系統(tǒng)里面,等到操作系統(tǒng)裝載并初始化完畢,就出現(xiàn)我們熟悉的系統(tǒng)登錄界面了。 


          1.2  與我何干

                  講了一通電腦啟動(dòng)的過(guò)程,有些朋友會(huì)想,這與我何干呢?
                  沒錯(cuò),看起來(lái)這些硬件知識(shí)跟你沒有什么大的關(guān)系,但是,如果現(xiàn)在提出一個(gè)要求:請(qǐng)你用軟件把上面的過(guò)程表現(xiàn)出來(lái),你該如何實(shí)現(xiàn)?
                  首先把上面的過(guò)程總結(jié)一下,主要就這么幾個(gè)步驟:首先加載電源,然后是設(shè)備檢查,再然后是裝載系統(tǒng),最后電腦就正常啟動(dòng)了。可是誰(shuí)來(lái)完成這些過(guò)程?如何完成?
                  不能讓使用電腦的客戶——就是我們來(lái)做這些工作吧,真正完成這些工作的是主板,那么客戶和主板如何發(fā)生聯(lián)系呢?現(xiàn)實(shí)中,是用連接線把按鈕連接到主板上的,這樣當(dāng)客戶按下按鈕的時(shí)候,就相當(dāng)于發(fā)命令給主板,讓主板去完成后續(xù)的工作。
                  另外,從客戶的角度來(lái)看,開機(jī)就是按下按鈕,不管什么樣的主板都是一樣的,也就是說(shuō),客戶只管發(fā)出命令,誰(shuí)接收命令,誰(shuí)實(shí)現(xiàn)命令,如何實(shí)現(xiàn),客戶是不關(guān)心的。


          1.3  有何問(wèn)題

                  把上面的問(wèn)題抽象描述一下:客戶端只是想要發(fā)出命令或者請(qǐng)求,不關(guān)心請(qǐng)求的真正接收者是誰(shuí),也不關(guān)心具體如何實(shí)現(xiàn),而且同一個(gè)請(qǐng)求的動(dòng)作可以有不同的請(qǐng)求內(nèi)容,當(dāng)然具體的處理功能也不一樣,請(qǐng)問(wèn)該怎么實(shí)現(xiàn)?

          2  解決方案

          2.1  命令模式來(lái)解決

                  用來(lái)解決上述問(wèn)題的一個(gè)合理的解決方案就是命令模式。那么什么是命令模式呢?
          (1)命令模式定義
                  將一個(gè)請(qǐng)求封裝為一個(gè)對(duì)象,從而使你可用不同的請(qǐng)求對(duì)客戶進(jìn)行參數(shù)化;對(duì)請(qǐng)求排隊(duì)或記錄請(qǐng)求日志,以及支持可撤銷的操作。

          (2)應(yīng)用命令模式來(lái)解決的思路
                  首先來(lái)看看實(shí)際電腦的解決方案
                  先畫個(gè)圖來(lái)描述一下,看看實(shí)際的電腦是如何處理上面描述的這個(gè)問(wèn)題的,如圖1所示:
                 

          posted @ 2011-06-09 13:16 貝貝 閱讀(96) | 評(píng)論 (0)編輯 收藏
          僅列出標(biāo)題  
          主站蜘蛛池模板: 永仁县| 武夷山市| 广饶县| 湘潭县| 桑植县| 威信县| 英山县| 蓝山县| 陵川县| 宝山区| 富蕴县| 平果县| 莱西市| 宜宾县| 哈密市| 乌海市| 新野县| 万州区| 景宁| 河西区| 家居| 商河县| 吉林市| 黎城县| 巧家县| 郴州市| 公主岭市| 鸡东县| 临夏市| 蕉岭县| 商都县| 台东县| 洪湖市| 马边| 星子县| 咸宁市| 中卫市| 台东市| 方山县| 云和县| 洪江市|