Java設計模式:23種設計模式

1. 軟件設計模式概述html

2. GoF 的 23 種設計模式的分類和功能設計模式

3. UML中的類圖及類圖之間的關係安全

4. 開閉原則——面向對象設計原則ide

5. 里氏替換原則——面向對象設計原則性能

6. 依賴倒置原則——面向對象設計原則spa

7. 單一職責原則——面向對象設計原則.net

8. 接口隔離原則——面向對象設計原則線程

9. 迪米特法則——面向對象設計原則設計

10. 合成複用原則——面向對象設計原則代理

11. 建立型模式的特色和分類

12. 單例模式(單例設計模式)詳解

  (1)餓漢式

①聲明靜態私有類變量,且當即實例化,保證明例化一次

②私有構造,防止外部實例化(經過反射是能夠實例化的,不考慮此種狀況)

③提供public的getInstance()方法供外部獲取單例實例

好處:線程安全;獲取實例速度快 缺點:類加載即初始化實例,內存浪費

public class Singleton { private static final Singleton singleton = new Singleton(); private Singleton() { } public static Singleton getInstance() { return singleton; } }

(2)懶漢式

延遲加載。

優勢:在獲取實例的方法中,進行實例的初始化,節省系統資源

缺點:①若是獲取實例時,初始化工做較多,加載速度會變慢,影響系統系能

②每次獲取實例都要進行非空檢查,系統開銷大

③非線程安全,當多個線程同時訪問getInstance()時,可能會產生多個實例

public class Singleton { private static Singleton singleton = null; private Singleton() { } public static Singleton getInstance() { if (singleton == null) { singleton = new Singleton(); } return singleton; } }

線程安全

1)同步鎖

優勢:線程安全,缺點:每次獲取實例都要加鎖,耗費資源,其實只要實例已經生成,之後獲取就不須要再鎖了

public synchronized static Singleton getInstance() { if (singleton == null) { singleton = new Singleton(); } return singleton; }

2)雙重檢查鎖

優勢:線程安全,進行雙重檢查,保證只在實例未初始化前進行同步,效率高 缺點:仍是實例非空判斷,耗費必定資源

public static Singleton getInstance() { if (singleton == null) { synchronized (Singleton.class) { if (singleton == null) { singleton = new Singleton(); } } } return singleton; }

3)靜態內部類

優勢:既避免了同步帶來的性能損耗,又可以延遲加載

public class Singleton { private Singleton() { } private static class SingletonHolder { private static final Singleton singleton = new Singleton(); } public static Singleton getInstance() { return SingletonHolder.singleton; } }

(3)枚舉

自然線程安全,可防止反射生成實例。

public enum Singleton { INSTANCE; public void init() { System.out.println("資源初始化。。。"); } }

 

13. 原型模式(原型設計模式)詳解

14. 工廠方法模式(詳解版)

15. 抽象工廠模式(詳解版)

16. 建造者模式(Bulider模式)詳解

17. 結構型模式概述(結構型模式的分類)

18. 代理模式(代理設計模式)詳解

19. 適配器模式(Adapter模式)詳解

20. 橋接模式(Bridge模式)詳解

21. 裝飾模式(裝飾設計模式)詳解

22. 外觀模式(Facade模式)詳解

23. 享元模式(詳解版)

24. 組合模式(詳解版)

25. 行爲型模式概述(行爲型模式的分類)

26. 模板方法模式(模板方法設計模式)詳解

27. 策略模式(策略設計模式)詳解

28. 命令模式(詳解版)

29. 責任鏈模式(職責鏈模式)詳解

30. 狀態模式(詳解版)

31. 觀察者模式(Observer模式)詳解

32. 中介者模式(詳解版)

33. 迭代器模式(詳解版)

34. 訪問者模式(Visitor模式)詳解

35. 備忘錄模式(詳解版)

36. 解釋器模式(詳解版)

37. UMLet的使用與類圖的設計

38. 建立型模式應用實驗

39. 結構型模式應用實驗

40. 行爲型模式應用實驗

相關文章
相關標籤/搜索