欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

開閉原則是什么-創(chuàng)新互聯(lián)

這篇文章主要介紹了開閉原則是什么,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

鳳凰ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

開閉原則

開閉原則(OCP)是面向?qū)ο笤O(shè)計(jì)中“可復(fù)用設(shè)計(jì)”的基石,是面向?qū)ο笤O(shè)計(jì)中最重要的原則之一,其它很多的設(shè)計(jì)原則都是實(shí)現(xiàn)開閉原則的一種手段。

1988年,勃蘭特·梅耶(Bertrand Meyer)在他的著作《面向?qū)ο筌浖?gòu)造(Object Oriented Software Construction)》中提出了開閉原則,它的原文是這樣:“Software entities should be open for extension,but closed for modification”。翻譯過(guò)來(lái)就是:“軟件實(shí)體應(yīng)當(dāng)對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉”。這句話說(shuō)得略微有點(diǎn)專業(yè),我們把它講得更通俗一點(diǎn),也就是:軟件系統(tǒng)中包含的各種組件,例如模塊(Modules)、類(Classes)以及功能(Functions)等等,應(yīng)該在不修改現(xiàn)有代碼的基礎(chǔ)上,引入新功能。開閉原則中“開”,是指對(duì)于組件功能的擴(kuò)展是開放的,是允許對(duì)其進(jìn)行功能擴(kuò)展的;開閉原則中“閉”,是指對(duì)于原有代碼的修改是封閉的,即不應(yīng)該修改原有的代碼。

遵循開閉原則設(shè)計(jì)出的模塊具有兩個(gè)主要特征:

(1)對(duì)于擴(kuò)展是開放的(Open for extension)。這意味著模塊的行為是可以擴(kuò)展的。當(dāng)應(yīng)用的需求改變時(shí),我們可以對(duì)模塊進(jìn)行擴(kuò)展,使其具有滿足那些改變的新行為。也就是說(shuō),我們可以改變模塊的功能。

(2)對(duì)于修改是關(guān)閉的(Closed for modification)。對(duì)模塊行為進(jìn)行擴(kuò)展時(shí),不必改動(dòng)模塊的源代碼或者二進(jìn)制代碼。模塊的二進(jìn)制可執(zhí)行版本,無(wú)論是可鏈接的庫(kù)、DLL或者.EXE文件,都無(wú)需改動(dòng)。

實(shí)現(xiàn)方法

實(shí)現(xiàn)開閉原則的關(guān)鍵就在于“抽象”。把系統(tǒng)的所有可能的行為抽象成一個(gè)抽象底層,這個(gè)抽象底層規(guī)定出所有的具體實(shí)現(xiàn)必須提供的方法的特征。作為系統(tǒng)設(shè)計(jì)的抽象層,要預(yù)見(jiàn)所有可能的擴(kuò)展,從而使得在任何擴(kuò)展情況下,系統(tǒng)的抽象底層不需修改;同時(shí),由于可以從抽象底層導(dǎo)出一個(gè)或多個(gè)新的具體實(shí)現(xiàn),可以改變系統(tǒng)的行為,因此系統(tǒng)設(shè)計(jì)對(duì)擴(kuò)展是開放的。

我們?cè)谲浖_發(fā)的過(guò)程中,一直都是提倡需求導(dǎo)向的。這就要求我們?cè)谠O(shè)計(jì)的時(shí)候,要非常清楚地了解用戶需求,判斷需求中包含的可能的變化,從而明確在什么情況下使用開閉原則。

關(guān)于系統(tǒng)可變的部分,還有一個(gè)更具體的對(duì)可變性封裝原則(Principle of Encapsulation of Variation, EVP),它從軟件工程實(shí)現(xiàn)的角度對(duì)開閉原則進(jìn)行了進(jìn)一步的解釋。EVP要求在做系統(tǒng)設(shè)計(jì)的時(shí)候,對(duì)系統(tǒng)所有可能發(fā)生變化的部分進(jìn)行評(píng)估和分類,每一個(gè)可變的因素都單獨(dú)進(jìn)行封裝。

我們?cè)趯?shí)際開發(fā)過(guò)程的設(shè)計(jì)開始階段,就要羅列出來(lái)系統(tǒng)所有可能的行為,并把這些行為加入到抽象底層,根本就是不可能的,這么去做也是不經(jīng)濟(jì)的。因此我們應(yīng)該現(xiàn)實(shí)的接受修改擁抱變化,使我們的代碼可以對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉。

好處

如果一個(gè)軟件系統(tǒng)符合開閉原則的,那么從軟件工程的角度來(lái)看,它至少具有這樣的好處:

可復(fù)用性好。

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

可維護(hù)性好。

由于對(duì)于已有的軟件系統(tǒng)的組件,特別是它的抽象底層不去修改,因此,我們不用擔(dān)心軟件系統(tǒng)中原有組件的穩(wěn)定性,這就使變化中的軟件系統(tǒng)有一定的穩(wěn)定性和延續(xù)性。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享開閉原則是什么內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司,關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道,遇到問(wèn)題就找創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司,詳細(xì)的解決方法等著你來(lái)學(xué)習(xí)!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、網(wǎng)站設(shè)計(jì)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

文章標(biāo)題:開閉原則是什么-創(chuàng)新互聯(lián)
URL鏈接:http://www.chinadenli.net/article46/ccpseg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航網(wǎng)站設(shè)計(jì)公司電子商務(wù)微信公眾號(hào)網(wǎng)站維護(hù)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)