其實對於學習java來說,就是一種修煉,7種心法,23種武功,java常用的設計模式,是每位大俠都需要掌握的東西,所以這裏講述下關於常用的設計模式如何~

java 7大心法,23種絕學,你學會了不?

java的設計模式大體上分爲三大類:創建型模式(5種):工廠方法模式抽象工廠模式單例模式,建造者模式,原型模式。

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

行爲型模式(11種):策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解釋器模式。

java 7大心法,23種絕學,你學會了不?

除了設計模式的分類,還需要了解的就是設計模式的設計準則,這是我們需要在使用設計模式過程中遵循的原則

I

JAVA

設計模式遵循的原則有7個:

1、開閉原則:對擴展開放,對修改關閉

2、里氏代換原則:只有當衍生類可以替換掉基類,軟件單位的功能不受到影響時,基類才能真正被複用,而衍生類也能夠在基類的基礎上增加新的行爲。

3、依賴倒轉原則:這個是開閉原則的基礎,對接口編程,依賴於抽象而不依賴於具體。

4、接口隔離原則:使用多個隔離的藉口來降低耦合度。

5、迪米特法則(最少知道原則):實體之間儘量少的發生相互作用,使得系統功能模塊相對獨立。

6、合成複用原則:原則是儘量使用合成/聚合的方式,而不是使用繼承。繼承實際上破壞了類的封裝性,超類的方法可能會被子類修改。

7、組合/聚合複用原則:在一個新的對象裏面使用一些已有的對象,使之成爲新對象的一部分新的對象通過向這些對象的委派達到複用已有功能的目的。

I

JAVA

1

工廠模式(Factory Method)

java 7大心法,23種絕學,你學會了不?

常用的工廠模式是靜態工廠,利用static方法,作爲一種類似於常見的工具類Utils等輔助效果,一般情況下工廠類不需要實例化。

2

抽象工廠模式(Abstract Factory)

java 7大心法,23種絕學,你學會了不?

一個基礎接口定義了功能,每個實現接口的子類就是產品,然後定義一個工廠接口,實現了工廠接口的就是工廠,這時候,接口編程的優點就出現了,我們可以新增產品類(只需要實現產品接口),只需要同時新增一個工廠類,客戶端就可以輕鬆調用新產品的代碼。

抽象工廠的靈活性就體現在這裏,無需改動原有的代碼,畢竟對於客戶端來說,靜態工廠模式在不改動GirlFactory類的代碼時無法新增產品,如果採用了抽象工廠模式,就可以輕鬆的新增拓展類。

3

單例模式(Singleton)

java 7大心法,23種絕學,你學會了不?

在內部創建一個實例,構造器全部設置爲private,所有方法均在該實例上改動,在創建上要注意類的實例化只能執行一次,可以採用許多種方法來實現,如Synchronized關鍵字,或者利用內部類等機制來實現。

4

代理模式(Proxy)

java 7大心法,23種絕學,你學會了不?

客戶端通過代理類訪問,代理類實現具體的實現細節,客戶只需要使用代理類即可實現操作。這種模式可以對舊功能進行代理,用一個代理類調用原有的方法,且對產生的結果進行控制。

比如生活中的通過代理訪問網絡,客戶通過網絡代理連接網絡(具體業務),由代理服務器完成用戶權限和訪問限制等與上網相關的其他操作(相關業務)。

5

外觀模式(Facade)

java 7大心法,23種絕學,你學會了不?

爲子系統中的一組接口提供一個一致的界面,定義一個高層接口,這個接口使得這一子系統更加容易使用。

6

觀察者模式(Observer Pattern)

java 7大心法,23種絕學,你學會了不?

觀察者模式定義了一對多的依賴關係,讓多個觀察者對象同時監聽某一個主題對象。這個主題對象在狀態上發生變化時,會通知所有觀察者對象,使他們能夠自動更新自己。

相关文章