1. 程式人生 > >Java設計模式隨筆

Java設計模式隨筆

posit 項目 open ger 單個 不依賴 訪問者 很好 問題

大家都知道Java23種設計模式,大神總結如下:

創建型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。

結構型模式,共七種:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。

行為型模式,共十一種:策略模式、模板方法模式、觀察者模式、叠代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解釋器模式。

各種設計模式的原理和要點大神zhangerqing的原創博文系列已有講解,貼一下,遺忘了就去復習

http://blog.csdn.net/zhangerqing/article/details/8194653 【Java之美[從菜鳥到高手演變]之設計模式】創建型模式

http://blog.csdn.net/zhangerqing/article/details/8239539 【Java之美[從菜鳥到高手演變]之設計模式二】結構型模式

http://blog.csdn.net/zhangerqing/article/details/8243942【Java之美[從菜鳥到高手演變]之設計模式三】行為型模式

http://blog.csdn.net/zhangerqing/article/details/8245537【Java之美[從菜鳥到高手演變]之設計模式四】行為型模式二

設計模式的六大原則:

1、開閉原則(Open Close Principle)。開閉原則就是說對擴展開放,對修改關閉。

2、裏氏代換原則(Liskov Substitution Principle)。裏氏代換原則中說,任何基類可以出現的地方,子類一定可以出現。

3、依賴倒轉原則(Dependence Inversion Principle)。這個是開閉原則的基礎,具體內容:針對接口編程,依賴於抽象而不依賴於具體。

4、接口隔離原則(Interface Segregation Principle)。這個原則的意思是:使用多個隔離的接口,比使用單個接口要好。

5、迪米特法則(最少知道原則)(Demeter Principle)。一個實體應當盡量少的與其他實體之間發生相互作用,使得系統功能模塊相對獨立。

6、合成復用原則(Composite Reuse Principle)。原則是盡量使用合成/聚合的方式,而不是使用繼承。

人們總結以上設計模式的原則主要從工作經驗中來,考慮如下兩點:

一、擴展性。擴展性可謂當前企業級項目必備,個人項目做實驗或興趣擴展性可能在易編程性之後,想要盡快做出東西,看看效果玩一玩。企業級項目可不同,一定是針對直接客戶的需求為目標,而且這個需求會隨著調研深淺和市場競爭有很大差異,目前中國市場競爭之激烈,一個小項目第一個月調研出來的結果可能是兩個核心需求,第二個月就會多出有上十個配套需求了,在系統上線半年之後還可能有好幾個補充需求。那麽這個項目無論從架構上還是功能模塊上,都需要具備很好的擴展性。

二、穩定性。一個項目上線對外提供服務,出現故障一般有幾種情況:編程質量不高導致內存泄漏或運行緩慢,網絡帶寬/數據庫/服務器硬件性能導致系統崩潰,還有就是更新版本導致性能或功能問題。在高速發展的業務場景下,版本更新產生的問題比前兩種藥常見得多,而且更為嚴重。本身沒有什麽大漏洞的系統,由於更新版本出現功能性漏洞的情況屢見不鮮。如何避免這類問題,其實就是新功能不要影響舊功能,那怎麽樣新功能才不會影響舊功能呢?利用Java的繼承的接口實現特性,盡量不要去改現有的類,即使要改現有的類,也不要去改現有的函數。使用新的類和新的函數去實現新功能。

Java設計模式隨筆