這裡說的設計模式是軟體設計裡的模式,主要是指物件導向的軟體設計。遵照設計模式,可以有效的提高軟體的可維護性和可復用性,提高開發軟體的效率,避免過多的出現再造輪子的現象。
模式是一種對現實世界的概念抽象,建築模式,設計模式,營銷模式,商業運作模式各行各業都有自己的模式。
這裡說的設計模式是軟體設計裡的模式,主要是指物件導向的軟體設計。遵照設計模式,可以有效的提高軟體的可維護性和可復用性,提高開發軟體的效率,避免過多的出現再造輪子的現象。
設計軟體的幾個原則,這個也是設計模式的精髓所在:
1.開-閉原則
1).客戶的需求是不穩定的,通過擴充套件已有的軟體系統而不是通過修改軟體系統來滿足客戶的需求,這樣的軟體系統就滿足開-閉原則,即軟體系統要有一定的靈活性和適應性。
2) . 已有的模組,特別是抽象層的模組不能修改,保證軟體系統的穩定性和延續性。
解決問題的關鍵是抽象化,把它與具體實現分離開來。介面(inte***ce),抽象類的應用
對可變性封裝:將可變性封裝到乙個物件裡。
2.抽象類
抽象類不會有例項,一般作為父類為子類繼承,一般包含這個系的共同屬性和方法。
注意:好的繼承關係中,只有葉節點是具體類,其他節點應該都是抽象類,也就是說具體類
是不被繼承的。將盡可能多的共同**放到抽象類中。
3.黎克特制代換原則
在有基類出現的地方,子類均可以替代。
當兩個具體類關係違反黎克特制代換原則時,一種辦法是抽象出乙個基類,作為這兩個類的父類,
一種是應用組合聚合關係建立關係。
不要為了使用某些類的方法(功能)而濫用繼承。
4 依賴倒轉原則
抽象不應該依賴與細節,細節應當依賴與抽象。
要針對介面程式設計,而不是針對實現程式設計。
傳遞引數,或者在組合聚合關係中,盡量引用層次高的類。
主要是在構造物件時可以動態的建立各種具體物件,當然如果一些具體模擬較穩定,就不必在弄乙個抽象類做它的父類,這樣有畫舌添足的感覺
5 介面隔離原則
定**務的例子,每乙個介面應該是一種角色,不多不少,不幹不該幹的事,該幹的事都要幹
6 合成/聚合原則
盡量使用合成聚合原則,少用慎用繼承。
合成:一榮俱榮,一損俱損,整體和部分的生命週期是一樣的
聚合:部分可以是整體的一部分,也可以脫離整體而存在。
區分has a和is a的問題
7 迪公尺特法則
最少知識原則。不要和陌生人說話。
設計模式 軟體設計原則
軟體設計六大原則 一 單一職責原則 srp 意思是就乙個類而言只有乙個改變類的起因和動機 遵循單一職責 1.可以降低類的複雜度,乙個類只負責一項職責,其邏輯肯定要比負責多項職責簡單的多 2.提高類可維護性,系統的可擴充套件性 3.變更引起的風險降低,當修改乙個功能時,可以顯著降低對其他功能的影響。二...
軟體設計原則 設計模式
定義 高層模組不能依賴底層模組,二者應該依賴其抽象 抽象不依賴細節,細節應該依賴抽象 優點 減少類之間的耦合性,提高系統穩定性 可讀性和可維護性,降低修改程式帶來的風險 定義 不要存在多於乙個導致類變更的原因,乙個類 介面 方法只負責一項職責 優點 降低類的複雜度 提高類的可讀性,提高系統的可維護性...
設計模式 軟體設計原則 開閉原則
在軟體開發中,為了提高軟體系統的可維護性和可復用性,增加軟體的可擴充套件性和靈活性,程式設計師要盡量根據6條原則來開發程式,從而提高軟體開發效率 節約軟體開發成本和維護成本。對擴充套件開放,對修改關閉。在程式需要進行拓展的時候,不能去修改原有的 實現乙個熱插拔的效果。簡言之,是為了使程式的擴充套件性...