麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 課堂 > FAQ問答 > 正文

開閉原則是指什么?

2020-03-22 19:03:06
字體:
來源:轉載
供稿:網友
開閉原則

開閉原則(OCP)是html' target='_blank'>面向對象設計中“可復用設計”的基石,是面向對象設計中最重要的原則之一,其它很多的設計原則都是實現開閉原則的一種手段。

1988年,勃蘭特·梅耶(Bertrand Meyer)在他的著作《面向對象軟件構造(Object Oriented Software Construction)》中提出了開閉原則,它的原文是這樣:“Software entities should be open for extension,but closed for modification”。翻譯過來就是:“軟件實體應當對擴展開放,對修改關閉”。這句話說得略微有點專業,我們把它講得更通俗一點,也就是:軟件系統中包含的各種組件,例如模塊(Modules)、類(Classes)以及功能(Functions)等等,應該在不修改現有代碼的基礎上,引入新功能。開閉原則中“開”,是指對于組件功能的擴展是開放的,是允許對其進行功能擴展的;開閉原則中“閉”,是指對于原有代碼的修改是封閉的,即不應該修改原有的代碼。

遵循開閉原則設計出的模塊具有兩個主要特征:

(1)對于擴展是開放的(Open for extension)。這意味著模塊的行為是可以擴展的。當應用的需求改變時,我們可以對模塊進行擴展,使其具有滿足那些改變的新行為。也就是說,我們可以改變模塊的功能。

(2)對于修改是關閉的(Closed for modification)。對模塊行為進行擴展時,不必改動模塊的源代碼或者二進制代碼。模塊的二進制可執行版本,無論是可鏈接的庫、DLL或者.EXE文件,都無需改動。

實現方法

實現開閉原則的關鍵就在于“抽象”。把系統的所有可能的行為抽象成一個抽象底層,這個抽象底層規定出所有的具體實現必須提供的方法的特征。作為系統設計的抽象層,要預見所有可能的擴展,從而使得在任何擴展情況下,系統的抽象底層不需修改;同時,由于可以從抽象底層導出一個或多個新的具體實現,可以改變系統的行為,因此系統設計對擴展是開放的。

我們在軟件開發的過程中,一直都是提倡需求導向的。這就要求我們在設計的時候,要非常清楚地了解用戶需求,判斷需求中包含的可能的變化,從而明確在什么情況下使用開閉原則。

關于系統可變的部分,還有一個更具體的對可變性封裝原則(Principle of Encapsulation of Variation, EVP),它從軟件工程實現的角度對開閉原則進行了進一步的解釋。EVP要求在做系統設計的時候,對系統所有可能發生變化的部分進行評估和分類,每一個可變的因素都單獨進行封裝。

我們在實際開發過程的設計開始階段,就要羅列出來系統所有可能的行為,并把這些行為加入到抽象底層,根本就是不可能的,這么去做也是不經濟的。因此我們應該現實的接受修改擁抱變化,使我們的代碼可以對擴展開放,對修改關閉。

好處

如果一個軟件系統符合開閉原則的,那么從軟件工程的角度來看,它至少具有這樣的好處:

可復用性好。

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

可維護性好。

由于對于已有的軟件系統的組件,特別是它的抽象底層不去修改,因此,我們不用擔心軟件系統中原有組件的穩定性,這就使變化中的軟件系統有一定的穩定性和延續性。

以上就是開閉原則是指什么?的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

上一篇:SVN是什么

下一篇:MVC模式是什么

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 精品一区二区三区在线观看国产 | 久久影院一区二区三区 | 成人18免费观看 | 欧美成人午夜一区二区三区 | 免费国产一级淫片 | 国产一级爱c视频 | 久久久久久久黄色片 | 免费黄色在线 | 国产精选电影免费在线观看网站 | 中文在线观看www | 伊人一二三四区 | 日韩精品中文字幕一区二区三区 | 99精品国产小情侣高潮露脸在线 | 本色视频aaaaaa一级网站 | 精品一区二区三区日本 | 美国av免费看| 国产精品久久久久久久久久尿 | 一区二区三区在线观看国产 | 国产1区2 | 911色_911色sss主站色播 | 一级黄色免费观看 | 91久久久久 | 黄色片网站免费在线观看 | 91精品福利视频 | 免费黄网站在线播放 | 国产亚洲美女精品久久久2020 | 成人午夜视频在线观看免费 | 亚洲精品aⅴ中文字幕乱码 欧美囗交 | 国产精品久久久久久久久久大牛 | a级高清免费毛片av在线 | 毛片视频播放 | 精品国产一区二区三区成人影院 | china对白普通话xxxx | 欧美激情精品久久久久久久久久 | 中文在线观看www | 久久91久久久久麻豆精品 | 久久久久久久久浪潮精品 | 黄色a级片免费观看 | 日本a级一区 | 久久91亚洲人成电影网站 | 亚洲午夜久久久精品一区二区三区 |