更新時間:2021-08-19 來源:黑馬程序員 瀏覽量:
在軟件開發(fā)中,為了提高軟件系統(tǒng)的可維護性和可復用性,增加軟件的可擴展性和靈活性,程序員要盡量根據(jù)6條原則來開發(fā)程序,從而提高軟件開發(fā)效率、節(jié)約軟件開發(fā)成本和維護成本。這六條分別是開閉原則、里氏代換原則、依賴倒轉(zhuǎn)原則、接口隔離原則、迪米特法則、合成復用原則,下面主要介紹開閉原則。
開閉原則指對擴展開放,對修改關閉。在程序需要進行拓展的時候,不能去修改原有的代碼,實現(xiàn)一個熱插拔的效果。簡言之,是為了使程序的擴展性好,易于維護和升級。
想要達到這樣的效果,我們需要使用接口和抽象類。
因為抽象靈活性好,適應性廣,只要抽象的合理,可以基本保持軟件架構的穩(wěn)定。而軟件中易變的細節(jié)可以從抽象派生來的實現(xiàn)類來進行擴展,當軟件需要發(fā)生變化時,只需要根據(jù)需求重新派生一個實現(xiàn)類來擴展就可以了。
下面以搜狗輸入法的皮膚為例介紹開閉原則的應用。
【例】搜狗輸入法 的皮膚設計。
分析:搜狗輸入法的皮膚是輸入法背景圖片、窗口顏色和聲音等元素的組合。用戶可以根據(jù)自己的喜愛更換自己的輸入法的皮膚,也可以從網(wǎng)上下載新的皮膚。這些皮膚有共同的特點,可以為其定義一個抽象類(AbstractSkin),而每個具體的皮膚(DefaultSpecificSkin和HeimaSpecificSkin)是其子類。用戶窗體可以根據(jù)需要選擇或者增加新的主題,而不需要修改原代碼,所以它是滿足開閉原則的。
猜你喜歡: