建造型設計模式

  • 簡介

    • 內容

      • 介紹用於創造對象的設計模式.用於處理類膨脹和多肽.

    • 說明

      • 類的創建有需要多需要注意的.
      • 創建哪個,可以創建多少個,如何創建.
    • 創建哪個

      • 工廠模式,當函數的if else膨脹得特別大,就需要用抽象工廠,進行拆分.

    • 創建多少個

      • 單例創建一個對象,建造者則用定長數組存放某個集合.

    • 如何創建

      • 一般建議用構造,但是拷貝構造在某些場景下效率更高.

  • 工廠

    • 說明

      • 主要用於應對多肽,以及根據key來確定類型.
    • 好處

      • 採用key:value映射的關係創建對應的類.
      • 主要的職責就是創建正確的對象.
      • 改動較小.
    • 劣勢

      • 當類變多的時候可能會導致工廠變得特別大.
    • 抽象工廠

      • if else分支特別多的時候,需要用抽象類進行拆分.

      • 一類工廠負責一類的創建,就有兩層的抽象工廠了.

    • 組合差異

      • 工廠一般是根據key獲取.
      • 組合則是key的變化與所在類本身無較大關聯.可以各自獨立變換.
      • 組合可以藉助適配器,代理的方式完成工作.
  • 單例

    • 說明

      • 主要用於構建類似集中管理類.
    • 適用場景

      • 只允許創建一個對象的場景.
    • 安全性

      • 需要保證併發訪問安全,及多線程初始化的情況.
  • 建造者

    • 說明

      • 主要用於構建基本組件變化,但是組合會發生變化的:套餐.
    • 核心

      • 將變化的抽象出來獨自變化.
    • 組合存儲

      • 組合根據不同的場景採用不同的數據結構。
      • 鏈表,數組,集合,map.
  • 拷貝

    • 說明

      • 對象之間賦值就存在類拷貝。
      • 拷貝就有深拷貝和淺拷貝的區別。
    • 淺拷貝。

      • memcpy就可完成.
    • 深拷貝

      • 需要遞歸才能完成,主要是拷貝所有關聯的,主要是new出來的,即指針指向的內容也要拷貝.
  • 總結

    • 創造這裏就是. 創建:哪個,多少,怎麼建.

    • 哪個:工廠,多少:單例和組合,怎麼建:深淺拷貝.

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