軟體設計的核心是提高軟體的可復用性和可維護性。通常乙個軟體之所以可復用性和可擴充套件性差的原因在於設計過於僵硬,過於脆弱,復用率低,粘度過高等原因導致的,這時候需要想辦法提高可擴充套件性,靈活性和可插入性,從而提高軟體的可復用性和可維護性。一般可維護性和可復用性不能同時能達到目的,只有遵循一定的設計原則,設計出來的系統才能同時滿足可復用性和可維護性。物件導向設計原則主要有如下幾條:
1、「開閉」原則(open-closed principle)簡稱ocp,講的是乙個軟體實體應該對擴充套件開放對修改關閉。
2、黎克特制代換原則(liskov substitution principle)簡稱lsp,講的是任何父類出現的地方都可以被子類代替。
3、依賴倒轉原則(dependency inversion principle)簡稱dip,講的是要依賴於抽象不要依賴於實現。
4、介面隔離原則(inte***ce segregation principle)簡稱isp,講的是為客戶端提供盡可能小的單獨的介面,而不是提供大的總介面。
5、組合/聚合服用原則(composition/aggregation principle)簡稱carp,講的是要盡可能使用組合,聚合來達到復用目的而不是利用繼承。
6、迪公尺特法則(law of demeter)簡稱lod,講的是乙個軟體實體應當與盡可能少的其他軟體實體發生相互作用。
為什麼要在講設計模式前講設計原則,是因為設計模式是物件導向設計原則的具體指導,所以有了理論和設計指導我們就可以進入設計模式學習了,設計模式大家常說的有23中,其實現實中要多的多,大概分為三類:建立模式,結構模式和行為模式。
from:
物件導向的設計模式 2
建立型模式 結構型模式 行為型模式 工廠方法模式 單例模式 簡單工廠模式 抽象工廠模式 建造者模式 原型模式 建立型模式隱藏了這些類的例項是如何被建立和放在一起,整個系統關於這些物件所知道的是由抽象類所定義的介面。這樣,建立型模式在建立了什麼 誰建立它 它是怎麼被建立的,以及何時建立這些方面提供了很...
物件導向設計模式學習(一) 物件導向設計模式與原則
1。軟體設計模式是一些常見問題的一般解決案。2。物件導向設計模式是在物件導向開發中描述物件之間資訊通訊的組織關係。3。面象物件的三個特點 封裝 內部實現的隱藏 繼承 實現 復用 多型 改寫物件的行為 4。實現封裝,繼承,多型並不代表就是乙個面象物件模式設計,是面象物件模式的設計才導致了封裝,繼承,多...
物件導向設計原則 java設計模式(一)
單一職責原則 開閉原則 黎克特制替換原則 依賴倒轉原則 介面隔離原則 合成復用原則 迪公尺特法則 確保可復用性。實現設計方案或者源 的復用。乙個類的職責越多,被復用的可能性越小。當其中乙個職責變化時,可能會影響到其他職責的運作。因此需要職責分離。重構版本 拆分為3個類。基類可以設計為抽象類 介面,增...