Java設計模式-GoF設計模式

設計模式之間的區別

 

1、工廠模式與建造者模式

工廠模式   關注的是創建單個產品,
建造者模式 關注創建符合對象,多個部分。


2、策略模式與橋接模式

1、橋接(Bridge)模式是結構型模式,策略(strategy)模式屬於行爲模式
2、橋接主要是接口隔離的原則,策略在解耦上還僅僅是某一個算法的層次
3、策略模式的結構是包容在橋接模式結構中的

附:
接口隔離的原則即把本質上並不內聚的兩種體系區別開來,使得它們可以鬆散的組合)
策略模式的結構是包容在橋接模式結構中的,Abstraction與Implementor之間就可以認爲是策略模式,但是橋接模式一般Implementor將提供一系列的成體系的操作,而且Implementor是具有狀態和數據的靜態結構。而且橋接模式Abstraction也可以獨立變化


3、適配器模式與橋接模式


共同點:橋接和適配器都是讓兩個東西配合工作
不同點:出發點不同。
適配器:改變已有的兩個接口,讓他們相容。
橋接模式:分離抽象化和實現,使兩者的接口可以不同,目的是分離。


4、裝飾模式與代理模式


1、相同點:
兩者都是對類的方法進行擴展,
2、不同點:
裝飾器模式關注於在一個對象上動態的添加方法
裝飾器模式強調的是增強自身,在被裝飾之後你能夠在被增強的類上使用增強後的功能。
代理模式關注於控制對被代理對象的訪問。因爲被代理的對象往往難以直接獲得或者是其內部不想暴露出來。
代理模式則強調要讓別人幫你去做一些本身與你業務沒有太多關係的職責(記錄日誌、設置緩存)。
3、核心應用:
1、裝飾器模式:Java中IO流:
2、代理模式:Spring AOP,Interceptor等等需要在方法前後進行調用來增強的。

 

5、外觀模式與中介者模式


1.外觀模式是結構型模式,中介者模式是行爲型模式。
2.外觀模式是對子系統提供統一的接口,中介者模式是用一箇中介對象來封裝一系列同事對象的交互行爲。
3.外觀模式協議是單向,中介者模式協議是雙向。
4.外觀模式所有的請求處理都委託給子系統完成,而中介者模式則由中心協調同事類和中心本身共同完成業務。


6、單例模式與享元模式

相同
避免了對象的膨脹,大大節省了系統資源

不同
1、    
單例模式 屬於創建型模式
享元模式屬於結構型模式
2、
單例模式的難點完全不在與其思想,而在於技術實現,餓漢式,懶漢式,線程安全,Synchronized,DCL(雙重檢鎖),volatile,靜態內部類實現;
享元模式的核心思想在於大量細顆粒對象的重用,以節省內存資源
3、
單例模式嚴格控制單個進程中只有一個實例對象,類級別的,一個類只能有一個對象實例
享元模式可以再次創建對象 也可以取緩存對象,對象級別的,可以有多個對象實例,多個變量引用同一個對象實例

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章