<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-126  評論-247  文章-5  trackbacks-0

    所謂的開閉原則(Open-Closed Principle,簡稱 OCP)說的是:
    軟件實體(類、模塊、功能等)應該可以被擴展,但不可被修改。

    開閉原則說白了就是,應該在不修改現有代碼的基礎上,引入新功能。

    開閉原則中的“開”,是指對于組件功能的擴展是開放的,是允許對其進行功能擴展的;開閉原則中的“閉”,是指對于原有代碼的修改是封閉的,即不應該修改原有的代碼。

    而實際上,要做到百分之百的封閉是不可能的,但是在系統設計的時候,還是應該盡量做到這一點。


    一個簡單的例子,假設現在需要實現一個加法的功能,很簡單,如圖示1:


    現在的問題是,需求變了,要求還要實現一個減法的功能,這也很簡單,如圖示2:


    如果需求再變,還要求能實現乘法和除法的功能,依然簡單,如圖示3:


    從第2和第3步來看,很明顯,在需求改變,需要引進新的功能的時候,做法是在已有的類的基礎上通過新添方法來實現功能,假設在第2步之后,第3步的時候發現加法和減法功能
    最終都沒有用到,反而乘法和除法需要用到,那么在第3步的時候就要推翻第2步之前的實現,在需求發生改變需要引進新的功能的時候,就要推翻整個之前的系統,很明顯這樣的做法
    是不可取的,說明設計上出現了問題,這個缺陷明顯的是違反了OCP(開閉原則)。
    需求總是在變的,如果可能,就要做到盡量不要去修改已有的實現,而應該通過擴展的手段來穩定需求的變動。

    OCP原則替換圖2:


    OCP原則替換圖3:


    在我們最初編寫代碼的時候,我們假設變化不會發生,但最后變化發生的時候,可以通過創建抽象來隔離以后將要發生的同類變化。

    開閉原則是面向對象設計中“可復用設計”的基礎,是面向對象設計中最重要的原則之一。 從開閉原則中可以看出,面對對象的重要原則是創建抽象化,并且從抽象化中導出

    具體化,具體化可以有許多不同的版本,而每個不同的版本可以給出不同的實現。



      
    posted on 2012-08-02 11:03 fancydeepin 閱讀(871) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产成人无码区免费网站| 在线永久看片免费的视频| 精品国产综合成人亚洲区| 免费女人高潮流视频在线观看| 精品亚洲成在人线AV无码| 亚洲日本va午夜中文字幕久久| 免费无码一区二区三区蜜桃| 亚洲另类图片另类电影| 亚洲国产黄在线观看| 免费国产黄网站在线观看 | 一级女人18毛片免费| 野花视频在线官网免费1| 亚洲一区二区三区日本久久九| 蜜臀91精品国产免费观看| 免费91最新地址永久入口| 亚洲欧美日韩中文字幕一区二区三区| 国产精品亚洲精品日韩已方| 美女被cao免费看在线看网站| 亚美影视免费在线观看| 亚洲高清中文字幕免费| 亚洲高清国产拍精品26U| 国产精品久久香蕉免费播放| 91香焦国产线观看看免费| caoporn成人免费公开| 亚洲一区二区三区在线观看网站| 国产AV无码专区亚洲AV毛网站 | 处破痛哭A√18成年片免费| a级午夜毛片免费一区二区| 亚洲av综合日韩| 亚洲大片免费观看| 久久精品国产99精品国产亚洲性色| 免费看大黄高清网站视频在线| 91精品导航在线网址免费| 国产成人精品免费视频大全| 亚洲AV香蕉一区区二区三区| 亚洲成a人片在线网站| 亚洲免费精彩视频在线观看| 中文字幕日韩亚洲| 亚洲国产免费综合| 永久免费观看的毛片的网站| 色影音免费色资源|