日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > > 大橙子瘋嵌入式


前言

軟件開發(fā)設(shè)計中最大的難題就是應(yīng)對需求的變化,而各種各樣的需求變化又是不可預(yù)料的,我們要為這種不可預(yù)料的變化做好準(zhǔn)備,這本身是一件十分痛苦的事情,通常涉及到功能的變更、擴展和刪除等,所幸前輩們已經(jīng)給我們提出了經(jīng)典的六大設(shè)計原則23種設(shè)計模式來“封裝”未來的變化。

在程序設(shè)計領(lǐng)域, SOLID(單一功能、開閉原則、里氏替換、接口隔離以及依賴反轉(zhuǎn))是由羅伯特·C·馬丁在21世紀(jì)早期引入的記憶術(shù)首字母縮略字,指代了面向?qū)ο缶幊毯兔嫦驅(qū)ο笤O(shè)計的五個基本原則。六大設(shè)計原則中多了一個“迪米特法則”。

本文只針對六大設(shè)計原則的開閉原則進行介紹。

六大設(shè)計原則和23種設(shè)計模式主要適用于面向?qū)ο蟮木幊陶Z言,而非面向過程語言,即C語言。
熟練理解6大設(shè)計原則后,在面向過程語言中也能有一定的借鑒。

定義

在面向?qū)ο缶幊填I(lǐng)域中,開閉原則 (The Open/Closed Principle, OCP) 規(guī)定“軟件中的對象(類,模塊,函數(shù)等等)應(yīng)該對于擴展是開放的,但是對于修改是封閉的”,這意味著一個實體是允許在不改變它的源代碼的前提下變更它的行為。該特性在產(chǎn)品化的環(huán)境中是特別有價值的,在這種環(huán)境中,改變源代碼需要代碼審查,單元測試以及諸如此類的用以確保產(chǎn)品使用品質(zhì)的過程。遵循這種原則的代碼在擴展時并不發(fā)生改變,因此無需上述的過程。

  • 對擴展開放:模塊對擴展開放,就意味著需求變化時,可以對模塊擴展,使其具有滿足那些改變的新行為。換句話說,模塊通過擴展的方式去應(yīng)對需求的變化。

  • 對修改關(guān)閉:模塊對修改關(guān)閉,表示當(dāng)需求變化時,關(guān)閉對模塊源代碼的修改,當(dāng)然這里的“關(guān)閉”應(yīng)該是盡可能不修改的意思,也就是說,應(yīng)該盡量在不修改源代碼的基礎(chǔ)上面擴展組件。

原則

在軟件的生命周期內(nèi),因為變化、升級和維護等原因需要對軟件原有代碼進行修改時,可能會給舊代碼中引入錯誤,也可能會使我們不得不對整個功能進行重構(gòu),并且需要原有代碼經(jīng)過重新測試。

此原則的核心就是對擴展開放對更改封閉;面對需求,對程序的改動是通過增加新代碼進行的,而不是更改現(xiàn)有的代碼。這就是“開放-封閉原則”的精神所在。

該原則就要求在最開始設(shè)計程序的時候,盡量考慮更加全面,并且在實際編程中不斷去優(yōu)化甚至重構(gòu)之前的實現(xiàn)方式(當(dāng)然在時間較為充裕的情況下),并不是僅僅功能實現(xiàn)后就不管不顧了。

有很多的設(shè)計方式就是根據(jù)這些設(shè)計原則慢慢總結(jié)歸納的,比如表驅(qū)動編程、狀態(tài)機編程等,在盡量不影響原有的程序下,添加數(shù)據(jù)或者刪除數(shù)據(jù)。修改后甚至代碼只需要測試新增的數(shù)據(jù)是否有效等。

優(yōu)點

  • 對軟件測試友好

    軟件遵守開閉原則的話,軟件測試時只需要對擴展的代碼進行測試就可以了,因為原有的測試代碼仍然能夠正常運行。

  • 可復(fù)用性好

    我們可以在軟件完成以后,仍然可以對軟件進行擴展,加入新的功能,非常靈活。因此,這個軟件系統(tǒng)就可以通過不斷地增加新的組件,來滿足不斷變化的需求。

  • 可維護性好

    由于程序代碼的基礎(chǔ)框架考慮完善,基本上很少去修改這部分核心的代碼內(nèi)容,因此,我們不用擔(dān)心軟件系統(tǒng)中原有核心代碼的穩(wěn)定性,這就使變化中的軟件系統(tǒng)有一定的穩(wěn)定性和延續(xù)性。

總結(jié)

在最開始設(shè)計程序的時候,盡量考慮更加全面,并且在實際編程中不斷去優(yōu)化甚至重構(gòu)之前的實現(xiàn)方式,但是?。。。】紤]的時候也要適當(dāng)進行取舍,思考設(shè)計的代碼以后是否會用到,或者擴展功能時需要,有時候考慮太多反而限制了實際的編程進度,在思考初步基本框架后,就可以開始編程,在編程過程中思考。
通常程序設(shè)計,特別是對于功能擴展,需要多年的程序設(shè)計經(jīng)驗、同時有這個行業(yè)多年的業(yè)務(wù)要求經(jīng)驗,這樣才會在開發(fā)過程中想象到之后大概率會存在哪些需求,從而搭建這部分的基礎(chǔ)框架。



本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
關(guān)閉