<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)說的是:
    軟件實體(類、模塊、功能等)應(yīng)該可以被擴展,但不可被修改。

    開閉原則說白了就是,應(yīng)該在不修改現(xiàn)有代碼的基礎(chǔ)上,引入新功能。

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

    而實際上,要做到百分之百的封閉是不可能的,但是在系統(tǒng)設(shè)計的時候,還是應(yīng)該盡量做到這一點。


    一個簡單的例子,假設(shè)現(xiàn)在需要實現(xiàn)一個加法的功能,很簡單,如圖示1:


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


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


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

    OCP原則替換圖2:


    OCP原則替換圖3:


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

    開閉原則是面向?qū)ο笤O(shè)計中“可復用設(shè)計”的基礎(chǔ),是面向?qū)ο笤O(shè)計中最重要的原則之一。 從開閉原則中可以看出,面對對象的重要原則是創(chuàng)建抽象化,并且從抽象化中導出

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



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

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


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 日韩版码免费福利视频| 久久美女网站免费| 免费在线看v网址| 亚洲日韩区在线电影| 免费视频精品一区二区三区 | 福利免费观看午夜体检区| 中文字幕一精品亚洲无线一区| 免费看一级高潮毛片| 国产极品美女高潮抽搐免费网站| 2020亚洲男人天堂精品| 操美女视频免费网站| 亚洲成a∧人片在线观看无码| 免费的一级黄色片| 免费一级毛片在线播放视频免费观看永久 | 日本特黄特色AAA大片免费| 日韩免费视频网站| 免费一级全黄少妇性色生活片| 亚洲成av人片一区二区三区| 成在线人直播免费视频| 亚洲Av无码专区国产乱码DVD| 无码av免费网站| 99热亚洲色精品国产88| 午夜无遮挡羞羞漫画免费| 精品无码专区亚洲| 中文字幕精品亚洲无线码一区应用| 三级毛片在线免费观看| 久久精品a亚洲国产v高清不卡| 国产99视频精品免费观看7| 精品国产亚洲一区二区三区在线观看| 亚洲第一福利网站在线观看| 99精品视频在线观看免费| 亚洲成年人电影在线观看| 日韩免费三级电影| 怡红院免费全部视频在线视频| 亚洲大尺码专区影院| 国产成人啪精品视频免费网| 中文在线免费观看| 亚洲欧美日韩中文无线码 | 久青草国产免费观看| 老司机亚洲精品影院| 国产成人免费ā片在线观看 |