設計模式(1)——設計原則

設計原則

有說五大原則,六大原則,七大原則;這不重要,重要的是瞭解這些原則是什麼;設計原則要有取捨;編程

開閉原則:

定義:

軟件實體應當對擴展開放,對修改關閉設計模式

開閉原則的含義是:當應用的需求改變時,在不修改軟件實體的源代碼或者二進制代碼的前提下,能夠擴展模塊的功能,使其知足新的需求架構

  • 用抽象構建框架,用實現擴展細節
  • 提升軟件系統可複用性及可維護性

實現方式:

能夠經過「抽象約束、封裝變化」來實現開閉原則,即經過接口或者抽象類爲軟件實體定義一個相對穩定的抽象層,而將相同的可變因素封裝在相同的具體實現類中。

由於抽象靈活性好,適應性廣,只要抽象的合理,能夠基本保持軟件架構的穩定。而軟件中易變的細節能夠從抽象派生來的實現類來進行擴展,當軟件須要發生變化時,只須要根據需求從新派生一個實現類來擴展就能夠了框架

 里氏替換原則:

定義:

繼承必須確保超類所擁有的性質在子類中仍然成立.net

實現方式:

  1. 里氏替換原則通俗來說就是:子類能夠擴展父類的功能,但不能改變父類原有的功能。也就是說:子類繼承父類時,除添加新的方法完成新增功能外,儘可能不要重寫父類的方法。

  2. 若是經過重寫父類的方法來完成新的功能,這樣寫起來雖然簡單,可是整個繼承體系的可複用性會比較差,特別是運用多態比較頻繁時,程序運行出錯的機率會很是大。

  3. 若是程序違背了里氏替換原則,則繼承類的對象在基類出現的地方會出現運行錯誤。這時其修正方法是:取消原來的繼承關係,從新設計它們之間的關係。

 

 依賴倒置原則:

原始定義:

高層模塊不該該依賴低層模塊,二者都應該依賴其抽象;抽象不該該依賴細節,細節應該依賴抽象設計

實現方式:

依賴倒置原則的目的是經過要面向接口的編程來下降類間的耦合性,因此咱們在實際編程中只要遵循如下4點,就能在項目中知足這個規則。對象

  1. 每一個類儘可能提供接口或抽象類,或者二者都具有。
  2. 變量的聲明類型儘可能是接口或者是抽象類。
  3. 任何類都不該該從具體類派生。
  4. 使用繼承時儘可能遵循里氏替換原則。

 

單一職責原則:

定義

單一職責原則規定一個類應該有且僅有一個引發它變化的緣由,不然類應該被拆分繼承

實現方式:

  1. 單一職責原則是最簡單但又最難運用的原則,須要設計人員發現類的不一樣職責並將其分離,再封裝到不一樣的類或模塊中。而發現類的多重職責須要設計人員具備較強的分析設計能力和相關重構經驗
  2. 單一職責一樣也適用於方法。一個方法應該儘量作好一件事情。若是一個方法處理的事情太多,其顆粒度會變得很粗,不利於重用。

 

若在方法中有bool類型,必定要拆分紅兩個方法,由於必定有兩個功能;接口

接口和方法的單一原則儘可能徹底遵照,類的單一原則在條件容許狀況下遵照get

設計模式眼

相關文章
相關標籤/搜索