簡介
內容
介紹用於創造對象的設計模式.用於處理類膨脹和多肽.
說明
- 類的創建有需要多需要注意的.
- 創建哪個,可以創建多少個,如何創建.
創建哪個
工廠模式,當函數的
if else
膨脹得特別大,就需要用抽象工廠,進行拆分.創建多少個
單例創建一個對象,建造者則用定長數組存放某個集合.
如何創建
一般建議用構造,但是拷貝構造在某些場景下效率更高.
工廠
說明
- 主要用於應對多肽,以及根據
key
來確定類型.好處
- 採用
key:value
映射的關係創建對應的類.- 主要的職責就是創建正確的對象.
- 改動較小.
劣勢
- 當類變多的時候可能會導致工廠變得特別大.
抽象工廠
if else
分支特別多的時候,需要用抽象類進行拆分.一類工廠負責一類的創建,就有兩層的抽象工廠了.
組合差異
- 工廠一般是根據
key
獲取.- 組合則是
key
的變化與所在類本身無較大關聯.可以各自獨立變換.- 組合可以藉助適配器,代理的方式完成工作.
單例
說明
- 主要用於構建類似集中管理類.
適用場景
- 只允許創建一個對象的場景.
安全性
- 需要保證併發訪問安全,及多線程初始化的情況.
建造者
說明
- 主要用於構建基本組件變化,但是組合會發生變化的:套餐.
核心
- 將變化的抽象出來獨自變化.
組合存儲
- 組合根據不同的場景採用不同的數據結構。
- 鏈表,數組,集合,
map
.
拷貝
說明
- 對象之間賦值就存在類拷貝。
- 拷貝就有深拷貝和淺拷貝的區別。
淺拷貝。
memcpy
就可完成.深拷貝
- 需要遞歸才能完成,主要是拷貝所有關聯的,主要是
new
出來的,即指針指向的內容也要拷貝.
總結
創造這裏就是. 創建:哪個,多少,怎麼建.
哪個:工廠,多少:單例和組合,怎麼建:深淺拷貝.