設計模式—開放-關閉原則

來源:互聯網
上載者:User

開放-關閉原則:軟體實體(類、模組、實體等),應該可以可以擴充,但是不可修改。

對於擴充時開放的,對於更改時關閉的。


怎樣的設計才能面對需求改變卻可以保持相對穩定,從而使系統可以在第一版本以後不斷推出新的版本。


無論模組多麼‘封閉’,都會存在一些無法對之封閉的變化。既然不可能完全封閉,設計人員必須對他所設計的模組應該對那些變化封閉做出選擇,他必須先猜測出最有可能發生的變化種類,然後構造抽象來隔離那些變化。


在最初編寫代碼時,假設變化不會發生,當變化發生時,就建立抽象來隔離以後發生的同類變化。


面對需求,對程式的改動,是通過增加新代碼進行的,而不是更改現有的代碼。


希望在工作展開不久就知道可能發生的變化,查明可能發生變化所等待的時間越長,要建立正確的抽象就越困難。


開放-關閉原則是物件導向設計的核心所在。

遵循這一原則可以帶來物件導向所聲稱的的巨大好處,也就是可維護、可擴充、可服用、靈活性好。

程式員應該僅對程式中呈現頻繁變化的那些部分作出抽象,然而,對於程式中的每個部分都刻意地進行抽象同樣不是好主意。拒絕不成熟的抽象與抽象同等重要。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.