開閉原則

描述:一個軟件實體如類,模塊和函數應該對擴展開放,對修改關閉。

其實含義是說一個軟件實體應該通過擴展來實現變化,而不是通過修改已有的代碼來實現變化,那什么是軟件實體呢?

項目或軟件產品按一定的邏輯規(guī)則劃分的模塊。

抽象和類。

方法。


當需求變化的時候,有的書籍需要打折,那么如個解決這個需求呢?

?1? 修改接口? ? ?

在IBook上新增一個方法getOffprice()方法,專門用于處理打折的? 但是這樣修改的結果就是實現類也要修改? IBook作為接口應該是穩(wěn)定且可靠的,不應該經常變化,

2? 修改實現類

直接在getprice()方法中實現打折處理。

3? 通過擴展實現變化(可選)

?增加一個子類,復寫getPrice()方法,


注意 開閉原則對擴展開放,對修改關閉,并不意味者不做任何修改,底層模塊的變更,必然要有高層模塊進行耦合。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 定義 Software entities like classes,modules and functions s...
    充滿活力的早晨閱讀 2,369評論 2 1
  • 在哲學上,矛盾法則即對立統(tǒng)一的法則,是唯物辯證法的最根本法則。開閉原則(OCP)是Java世界里最基礎的設計原則,...
    hukei閱讀 681評論 0 0
  • 如需下載源碼,請訪問https://github.com/fengchuanfang/Open_Closed_Pr...
    afa1332閱讀 893評論 0 2
  • 對于做事,希望自己在別人的眼里是十全十美的。這樣是不可能,人無完人,孰能無過! 對于自己的缺點,需要別人去發(fā)現告訴...
    諪諪_0c2f閱讀 214評論 0 0
  • 在不合適的時代,由最無力的人身上,偏偏閃現出了少許極奢侈的念頭,這極端地不相稱,就是一段不可避免的悲劇拉開了序幕。...
    長夢千年何日醒閱讀 244評論 0 0

友情鏈接更多精彩內容