|
|
摘要運(yùn)用設(shè)計(jì)模式可有效地提高面向?qū)ο筌浖O(shè)計(jì)的效率和質(zhì)量。文中介紹了設(shè)計(jì)模式的思想,并以一個(gè)電力設(shè)備在線監(jiān)測(cè)軟件為實(shí)例詳細(xì)介紹了如何在面向?qū)ο笤O(shè)計(jì)中靈活使用設(shè)計(jì)模式。 關(guān)鍵詞設(shè)計(jì)模式面向?qū)ο笤诰監(jiān)測(cè) 1引言 在進(jìn)行軟件設(shè)計(jì)時(shí),有兩種方法可以使用,即結(jié)構(gòu)化設(shè)計(jì)方法和面向?qū)ο蟮姆椒。傳統(tǒng)的程序是采用結(jié)構(gòu)化設(shè)計(jì),用結(jié)構(gòu)化語言,如FORTRAN或C來編寫的。由于這種方法與現(xiàn)實(shí)生活中人們的認(rèn)知過程不完全吻合,故而這些程序難以理解且可擴(kuò)展性差,也就是說,程序的生命周期較短并且不適于重用性開發(fā)和增補(bǔ)性開發(fā)。 軟件的復(fù)雜性和人類認(rèn)知的基本特點(diǎn)要求出現(xiàn)軟件設(shè)計(jì)和編程的全新的方法。面向?qū)ο蟮某绦蛟O(shè)計(jì)應(yīng)運(yùn)而生了,因?yàn)槿祟惖睦斫膺^程大多都是面向?qū)ο蟮。從面向(qū)ο蟮慕嵌,世界被看作是由一些相互作用,并施加積極影響的對(duì)象所組成。一些面向?qū)ο蟮恼Z言,如C++,可以通過用繼承、聚合、多態(tài)、友元關(guān)系等方法來開發(fā)面向?qū)ο蟮南到y(tǒng),這樣的系統(tǒng)易于理解、修改和擴(kuò)展。 本文主要講述采用面向?qū)ο蟮脑O(shè)計(jì)方法進(jìn)行軟件設(shè)計(jì)時(shí),如何運(yùn)用設(shè)計(jì)模式的思想以獲得良好的設(shè)計(jì),并結(jié)合作者本人實(shí)際設(shè)計(jì)并開發(fā)的一個(gè)電力設(shè)備在線監(jiān)測(cè)軟件的實(shí)例來加以說明。 2面向?qū)ο筌浖O(shè)計(jì)的難點(diǎn) 面相對(duì)象軟件的設(shè)計(jì)目標(biāo)是靈活的、模塊化的、可復(fù)用的和易理解的軟件。面向?qū)ο蟮脑O(shè)計(jì)有很多優(yōu)點(diǎn),但也比較困難。如果對(duì)面向?qū)ο蟮睦斫獠粔,那么把面向(qū)ο蟮脑O(shè)計(jì)僅僅停留在封裝和繼承這些低層次的水平上,而完全沒有充分利用面向?qū)ο笏N(yùn)含的強(qiáng)大能力,這只能稱為具有面向?qū)ο笸庥^的結(jié)構(gòu)化設(shè)計(jì)。 熟悉一門面向?qū)ο蟮恼Z言(如C++)絕不等于一個(gè)好的面向?qū)ο笤O(shè)計(jì)人員。在進(jìn)行面向?qū)ο筌浖O(shè)計(jì)時(shí),一個(gè)難點(diǎn)是去發(fā)現(xiàn)合適的類。要從一個(gè)具體的應(yīng)用項(xiàng)目中去分析和找到合適的類要考慮許多因素:封裝、粒度、依賴關(guān)系、靈活性、演化、復(fù)用等等。特別地,設(shè)計(jì)結(jié)果所得到的類并非都在現(xiàn)實(shí)世界中存在,有很多類是抽象的,而且設(shè)計(jì)中的抽象對(duì)于產(chǎn)生靈活的設(shè)計(jì)是至關(guān)重要的,例如,描述過程和算法的類現(xiàn)實(shí)中并不存在,但它們卻是設(shè)計(jì)中的關(guān)鍵部分。除了要對(duì)對(duì)象進(jìn)行合理的抽象以形成合適的類外,另一個(gè)難點(diǎn)是確定各個(gè)類之間的結(jié)構(gòu)關(guān)系(如繼承、多態(tài)等)和由類實(shí)例化而得到的對(duì)象之間的通信和協(xié)作關(guān)系,這些決定了一個(gè)系統(tǒng)的可復(fù)用、可擴(kuò)展和易理解等特性。 3設(shè)計(jì)模式的提出 運(yùn)用設(shè)計(jì)模式可以幫助克服上述難點(diǎn)。設(shè)計(jì)模式描述了已有的設(shè)計(jì)方案,以便于重復(fù)利用已有經(jīng)驗(yàn);它為設(shè)計(jì)者提供了一套用較抽象的方式表示設(shè)計(jì)方案的方法,以便于設(shè)計(jì)者將自己的設(shè)計(jì)思想清楚地表達(dá)出來,便于交流。另外,在熟悉了設(shè)計(jì)模式思想并了解了一些模式后,還能在設(shè)計(jì)過程中運(yùn)用模式思想和方法來引導(dǎo)設(shè)計(jì),使設(shè)計(jì)效率得到很大提高。 設(shè)計(jì)模式就是記錄面向?qū)ο筌浖脑O(shè)計(jì)經(jīng)驗(yàn),每個(gè)設(shè)計(jì)模式系統(tǒng)地命名、解釋和評(píng)價(jià)了面向?qū)ο笙到y(tǒng)中一個(gè)重要和重復(fù)出現(xiàn)的設(shè)計(jì)。它是對(duì)被用來在特定場景下解決一般設(shè)計(jì)問題的類和相互通信的對(duì)象的描述。它確定了所包含的類和對(duì)象,它們的角色、協(xié)作方式以及職責(zé)分配。它不只針對(duì)某個(gè)具體應(yīng)用問題,而是某類問題解決方案的抽象描述。 在過去的結(jié)構(gòu)化設(shè)計(jì)方法中,算法和數(shù)據(jù)結(jié)構(gòu)起到十分重要的作用,而在面向?qū)ο笙到y(tǒng)的設(shè)計(jì)中,設(shè)計(jì)模式也具有很重要的作用,可以幫助設(shè)計(jì)者去分析要解決的問題。 描述一個(gè)模式包含下面幾個(gè)方面: (1)模式名:簡潔地描述模式的本質(zhì)。 (2)意圖:該模式適用于什么特定的問題。 。3)結(jié)構(gòu):用基于對(duì)象建模技術(shù)(OMT)的表示法對(duì)模式中的類進(jìn)行圖形描述。 。4)參與者:指模式中的類和對(duì)象以及它們各自的職責(zé)。 。5)協(xié)作:模式的參與者怎樣協(xié)作以實(shí)現(xiàn)它們的職責(zé)。 總的來講,設(shè)計(jì)模式有如下優(yōu)點(diǎn):(1)清晰地將設(shè)計(jì)方案表達(dá)出來,利于學(xué)習(xí);(2)便于復(fù)用已有的方案;(3)有助于分析具體設(shè)計(jì)問題;(4)便于文檔管理,經(jīng)驗(yàn)交流。 4一個(gè)實(shí)例——電力設(shè)備在線監(jiān)測(cè)軟件的設(shè)計(jì) 4.1電力設(shè)備在線監(jiān)測(cè)系統(tǒng)的構(gòu)成簡介 本軟件的任務(wù)是對(duì)電力設(shè)備由于內(nèi)部絕緣缺陷而造成的有害放電進(jìn)行在線監(jiān)測(cè);具^程是首先利用電流和超聲傳感器采集到可提供設(shè)備狀態(tài)信息的數(shù)據(jù),然后用FFT(快速傅立葉變換)分析出頻譜,以觀察頻率成分。接下來對(duì)數(shù)據(jù)進(jìn)行信號(hào)處理,以便將采集到的數(shù)據(jù)中的有用信號(hào)提取出來。這里的有用信號(hào)即指放電信號(hào)。經(jīng)過處理的數(shù)據(jù)要進(jìn)行兩種分析,一是通過電流信號(hào)計(jì)算放電量,二是利用超聲信號(hào)估計(jì)時(shí)延和放電點(diǎn)的定位計(jì)算。這在需要對(duì)設(shè)備進(jìn)行檢修時(shí)可幫助確定故障位置。采集和經(jīng)過信號(hào)處理的數(shù)據(jù)都將之放到文件中,以便用示波器來顯示和供下一步使用。 圖1是該軟件的數(shù)據(jù)流圖: 參考圖1,可從中發(fā)現(xiàn)幾個(gè)重要的組成部分,如示波器、數(shù)據(jù)采集過程、信號(hào)處理算法、定位算法等。此時(shí)如何從中找出合適的類,以及這些類的對(duì)象之間如何協(xié)作是問題的關(guān)鍵。 根據(jù)數(shù)據(jù)流圖分析,可定義如下幾個(gè)類: (1)示波器類:示波器主要是用來將數(shù)據(jù)用波形方式靈活的顯示在界面上,有時(shí)可能要提供不同的顯示風(fēng)格,因而設(shè)計(jì)一個(gè)示波器類,這時(shí)就可運(yùn)用抽象廠模式或工廠方法模式[1]。 。2)數(shù)據(jù)采集類:數(shù)據(jù)采集過程比較機(jī)械,可定義為一個(gè)類。但當(dāng)需要提高軟件的通用性時(shí),可采用橋接模式。 。3)信號(hào)處理算法類:對(duì)于信號(hào)處理算法類,則可采用策略模式。定位算法類的處理也類似。 限于篇幅,無法一一介紹,下面將結(jié)合信號(hào)處理算法類的構(gòu)造及使用詳細(xì)介紹策略模式。 4.2策略模式簡介 策略模式的英文名為Strategy,即策略。策略是用來處理問題的方法,面對(duì)不同的問題或同樣的問題在不同的情況下要根據(jù)實(shí)際情況選擇不同的策略。類似的,在進(jìn)行面向?qū)ο蟮脑O(shè)計(jì)時(shí),策略模式的意圖是定義一系列算法,把它們一個(gè)個(gè)封裝起來,并且使得可根據(jù)需要方便地選擇某個(gè)算法使用,并使得可獨(dú)立于算法的調(diào)用者而添加或刪除某個(gè)算法。
|
|
狀 態(tài):
離線
公司簡介
產(chǎn)品目錄
|
|
公司名稱:
|
武漢天立華高電氣設(shè)備有限公司
|
聯(lián) 系 人: |
天立華高
|
電 話: |
027-86385331
|
傳 真: |
|
地 址: |
武漢市http://www.whtlhgdq.com/東湖風(fēng)景區(qū)先鋒工業(yè)園天立大廈2幢 |
郵 編: |
430083 |
主 頁: |
|
|
|
|
|