天天看點

設計模式篇——建立型設計模式小結

建立型設計模式 已經全部書寫完畢,總共有5個,分别是:

  1. 單例模式(Singleton Pattern)
  2. 建造者模式(Builder Pattern)
  3. 工廠模式(Factory Pattern)
  4. 抽象工廠模式(Abstract Factory Pattern)
  5. 原型模式(Prototype Pattern)
所謂 建立型設計模式 即是建立對象的設計模式。
1、在實際的閱讀源碼的時候

你完全可以根據關鍵詞來判斷作者是否使用了設計模式,然後在腦海裡大概有個該類的代碼架構輪廓。例如:

  1. 單例模式

    Xxx.getInstance()

  2. 建造者模式

    Xxx.Builder()

  3. 工廠模式

    Xxx.Factory.Create()

  4. 抽象工廠模式

    XxxAbstrctFactory

  5. 原型模式

    ……(告辭)

2、在寫代碼的時候

考慮到需求的實作,代碼如何寫才能夠更優雅?我們完全可以沉浸在 面向對象 的過程中。

  1. 對于一個随處需要使用的工具類,我們完全可以将其實作 單例模式,讓他可以長時間存在于整個App的生命周期中,免去多次執行個體化的操作,減少了資源開銷,而且也免去了令人煩惱的傳參的操作。
  2. 如果我們需要建構一個複雜的對象,使用傳統的方法,大有機率會累死你個癟三,大量的模闆形式的代碼占用代碼塊,影響閱讀,以 OkHttp 為例,其類的内部屬性多如牛毛(近30個),使用 建造者模式 細分每一個功能步驟,結構化的建構一個對象,直面簡單。
  3. 對于建構過程複雜,且建構過程中單一,并無 差異化 ,使用 工廠模式 可以免去重複的建構對象的過程。
  4. 如果對象存在多個平級種類(包括基于多個種類的繼承關系的類),你又是一個處女座程式員,追求結構化,完美的想建構出一套架構,使用 抽象工廠模式 可以幫助你實作這個架構。
  5. 對于 原型模式……實在沒什麼可談的……
3、技術來源于生活

或許聰明的你已經意識到了,這些設計模式都可以 類比 生活。

  1. 每個人都隻有一雙眼睛,當我們想要看什麼東西的時候,就可以使用它,并且可以随時随地的使用,因為在我們出生的時候,我們的雙眼就被初始化了。
  2. 勞工們建構一個房子對象的時候,細分每一個步驟,一步一步的建構對象。
  3. 工廠裡機械的自動化生産,每一個流水線都是建構一個對象的方法,通過同一個流水線出來的産品,屬性基本是相同的。
  4. 抽象工廠模式 因為帶有 抽象 二字,是以就沒有例子了……
  5. 原型模式 則是來源于 克隆 這個詞。