1. 什麼是設計模式?
設計模式是前人在工作過程中總結的一套有效的編碼方案,是一套被反覆使用、多數人知曉的、經過分類編目的、代碼設計經驗的總結。
2. 爲什麼要用設計模式?
衆所周知JAVA不像其他語言那麼靈活,特別死板的限制了很多東西。爲了彌補自身的缺陷,所以引入了設計模式。使用設計模式是爲了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。
3. 設計模式的原則
1. 開閉原則:對擴展開發,對修改關閉;
2.里氏代換原則:任何基類可以出現的地方,子類一定可以出現;
3.依賴倒轉原則:面向接口編程;
4.接口隔離原則:使用多接口來降低耦合度;
5.迪米特法則:儘量減少與其他模塊的耦合性來降低系統複雜度;
6.合成複用原則:儘量採用合成和聚合的方式,不要直接繼承;
3. 設計模式的分類
創建型模式:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式;
結構型模式:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式;
行爲型模式:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解釋器模式;
其他模式:併發型模式和線程池模式。
(1)工廠方法模式:爲每一個業務處理類包裝一層工廠類,並對外暴露工廠類。
(2)抽象工廠模式:在工廠方法模式的基礎上,對工廠類抽象一層抽線工廠類並對外暴露抽象工廠類。
(3)建造者模式:在抽象工廠模式的基礎上,對抽象工廠抽象一層建造者類,由建造者對外提供真實的工廠類。
(4)單例模式:將實例對象的創建私有化,只允許存在一個實例對象。
(5)原型模式:將一個對象作爲原型,不允許直接操作此對象,但是允許複製一個對象來操作。
(6)適配器模式:將某個類的接口轉換成另一個接口並對外暴露。
(7)裝飾器模式:用一個裝飾器封裝原來的對象並增加額外功能。
(8)代理模式:代理模式就是多一個代理類出來,替原對象進行一些操作。
(9)觀察者模式:當一個對象變化時,其它依賴該對象的對象都會收到通知,並且隨着變化。