国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

設計模式六大原則(6)--開閉原則

2019-11-17 03:00:46
字體:
來源:轉載
供稿:網友
設計模式六大原則(6)--開閉原則

定義:

軟件中的對象(類,模塊,函數等等)應該對于擴展是開放的,但是對于修改是封閉的。

個人理解:

開閉原則通俗的來說就是軟件系統中包含的各種組件,例如模塊(Modules)、類(Classes)以及功能(Functions)等等,應該在不修改現有代碼的基礎上,引入新功能。開閉原則中“開”,是指對于組件功能的擴展是開放的,是允許對其進行功能擴展的;開閉原則中“閉”,是指對于原有代碼的修改是封閉的,即不應該修改原有的代碼。

問題由來:

在軟件的生命周期內,由于需求變動、維護和升級需要對項目部分代碼修改時,可能使沒修改的部分發生錯誤,這就需要對沒修改的部分也要進行測試。

解決方案:

軟件需要變化時,盡量通過擴展原來實體完成修改而不是修改原來代碼,也就是說用抽象構建框架,用實現擴展細節。

其實,開閉原則整個的定義比較模糊,它只是描述了軟件中的對象對于擴展開放,對于修改關閉,但沒有說如何實現。開閉原則算是前5中原則的一個抽象總結,前五種是開閉原則的一些具體實現,所以如果使用開閉原則,其實有點虛,因為它沒有一個固定的模式,但是最終保證的是提高程序的復用性、可維護性等要求。

聯系到前面所說的設計模式原則中的SOLID(單一職責原則、開閉原則、里氏替換原則、接口隔離原則和依賴倒置原則)以及迪米特法則,將設計模式六大原則除去開閉原則的設計模式原則實現了,也就完成了開閉原則。但是要明確一點,這些原則的實現不是是與否,而是實現的程序是多少。前面所介紹的設計模式前5大原則的作用如下:

  1. 單一職責原則告訴我們類的職責要單一;
  2. 里氏替換原則告訴我們不要破壞類的繼承;
  3. 依賴倒置原則告訴我們要使用接口;
  4. 接口隔離原則告訴我們接口盡量精簡單一;
  5. 迪米特法則告訴我們類間耦合性要盡量降低。

最后說明一下如何去遵守這六個原則。對這六個原則的遵守并不是是和否的問題,而是多和少的問題,也就是說,我們一般不會說有沒有遵守,而是說遵守程度的多少。任何事都是過猶不及,設計模式的六個設計原則也是一樣,制定這六個原則的目的并不是要我們刻板的遵守他們,而需要根據實際情況靈活運用。對他們的遵守程度只要在一個合理的范圍內,就算是良好的設計。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南陵县| 乐安县| 凉山| 淮阳县| 昌邑市| 句容市| 军事| 富裕县| 宁城县| 清水河县| 稷山县| 万荣县| 浦北县| 武汉市| 双桥区| 乡城县| 寻乌县| 高阳县| 怀集县| 西盟| 汉寿县| 乐都县| 武陟县| 宣武区| 繁昌县| 汤阴县| 且末县| 柏乡县| 军事| 河池市| 灌云县| 怀化市| 双鸭山市| 右玉县| 西充县| 博客| 冀州市| 慈溪市| 井研县| 洪泽县| 游戏|