一、什麼是設計模式 在軟體開發中,設計模式是對軟體設計中普遍存在的一些問題,所使用的解決方案 也就是說:設計模式是一套被反覆使用、多數人知曉的、經過分類的、代碼設計的 經驗的總結 使用設計模式可以達到代碼重用,讓代碼閱讀性更高,同時保證了代碼的可靠性。 由於java種具有23種設計模式,但都遵循著6 ...
一、什麼是設計模式
在軟體開發中,設計模式是對軟體設計中普遍存在的一些問題,所使用的解決方案
也就是說:設計模式是一套被反覆使用、多數人知曉的、經過分類的、代碼設計的 經驗的總結
使用設計模式可以達到代碼重用,讓代碼閱讀性更高,同時保證了代碼的可靠性。
由於java種具有23種設計模式,但都遵循著6個設計原則,所以最好是理解原則後,在去理解模式
二、設計模式原則
在java開發中有6中設計模式
1、開閉原則(Open Close Principle)
開閉原則:對擴展開放,對修改關閉。在程式需要進行擴展的時候,不能去修改或影響原有的代碼。
簡單的說,就是為了使程式的擴展性更好,易於維護和升級。想要達到這樣的效果,我們需要使用介面和抽象類
2、里氏替換原則(Liskov Substitution Principle)
里氏替換:任何基類可以出現的地方,子類一定可以出現。
里氏替換原則是面向對象設計的基本原則之一。里氏替換原則是繼承復用的基石,只有當子類可以替換掉基類,且軟體單位的功能不受到影響時,基類才能真正被覆用,而且子類也能夠在基類的基礎上增加新的行為。里氏代換原則是對開閉原則的補充。實現開閉原則的關鍵步驟就是抽象化,而基類與子類的繼承關係就是抽象化的具體實現。
3、依賴倒置原則(Dependence Inversion Principle)
依賴倒置:針對介面編程,高層模塊不應該依賴底層模塊,二者都應該依賴抽象。
這個原則是開閉原則的基礎。面向過程的開發,高層調用下層,高層依賴於下層,當下層劇烈變動時高層也要跟著變動。這就會導致模塊的復用性降低而且大大提高了開發的成本。當兩者都依賴於抽象時,下層的改變並不會影響到高層的功能
4、介面隔離原則(Interface Segregation Principle)
介面隔離:客戶端不應該依賴它不需要的介面;一個類對另一個類的依賴應該建立在最小的介面上。
使用多個隔離的介面,比使用單個龐大的介面要好。其目的在於降低耦合度。其實設計模式就是從大型軟體架構出發,便於升級和維護的軟體設計思想。它強調低依賴、低耦合。
5、單一職責原則(Single Responsibility Principle)
單一職責:一個類只負責一項職責。
一個實體應儘量少地與其他實體之間發生相互作用,應該使得系統功能模塊相對獨立。
單一職責和介面隔離區別:一,單一職責原則註重的是職責;而介面隔離原則註重對介面依賴的隔離。二,單一職責原則主要約束的是類,其次才是介面和方法,它針對的是程式中的實現和細節;而介面隔離原則主要約束介面,主要針對抽象,針對程式整體框架的構建。
6、最少知識原則(Demeter Principle)
最少知識:又叫迪米特法則。一個對象應當對其他對象有儘可能少的瞭解。
一個對象應該對其他對象保持最少的瞭解。類與類之間的關係越密切,耦合度越大,當一個類發生改變時,對另一個類的影響也越大。如果兩個類不必彼此直接通信,那麼這兩個類就不應當發生直接的相互作用。如果其中一個類需要調用另一個類的某一個方法的話,可以通過第三者轉發這個調用。