原理:設計模式五大原則(5):開閉原則
作者:強官濤   類型:Java開發    類別:原理   日期:2017-12-08    閱讀:2231 次   消耗積分:0 分

開閉原則(Open Closed Principle  OCP):一個軟件實體如類、模塊和函數應該對擴展開放,對修改關閉,此原則為設計模式的總綱

定義:

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

2.對于修改是關閉的(Closed for modification)。對模塊行為進行擴展時,不必改動模塊的源代碼或者二進制代碼。

問題由來:在軟件的生命周期內,因為變化、升級和維護等原因需要對軟件原有代碼進行修改時,可能會給舊代碼中引入錯誤,也可能會使我們不得不對整個功能進行重構,并且需要原有代碼經過重新測試。

開閉原則的重要性:

開閉原則對測試的影響(開閉原則可是保持原有的測試代碼仍然能夠正常運行,我們只需要對擴展的代碼進行測試就可以了)

開閉原則可以提高復用性(在面向對象的設計中,所有的邏輯都是從原子邏輯組合而來的,而不是在一個類中獨立實現一個業務邏輯。只有這樣代碼才可以復用,粒度越小,被復用的可能性就越大)

開閉原則可以提高可維護性

面向對象開發的要求

實現方法:

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

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

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


蝸牛學院,只為成就更好的你!

你!敢不敢!用你三個月的時間,換你不一樣的未來!

趕快關注蝸牛學院官方微信,了解更多信息吧!

20181009_153045_341.jpg

版權所有,轉載本站文章請注明出處:蝸牛學院在線課堂, http://www.bnwkbz.icu/note/29
上一篇: 資訊:2016蝸牛學院特聘導師簽約儀式
下一篇: 資訊:入讀蝸牛學院,享PMP項目管理資質認證
提示:登錄后添加有效評論可享受積分哦!
? 下载重庆时时