前言
這篇文章是我閱讀了其他文章(關(guān)于創(chuàng)建對象時候的設(shè)計(jì)模式)后的手打回顧, 加上 java 非我主攻方向, 所以只是一些概念的陳述和我的理解, 有錯漏之處請見諒.
概念回顧
- 單例模式
主要用于多次創(chuàng)建想生成同一個對象的情況. 推薦餓漢式, 線程安全, 缺點(diǎn)是即使沒被用到也會生成對象, 但問題不大. - 工廠模式
有點(diǎn)像 erlang 的匹配模式, 創(chuàng)建對象的時候需要輸入一個變量, 會根據(jù)這個變量的值來決定最終生成的對象的類型. 比如說創(chuàng)建對象的時候輸入 Circle 則生成一個圓, 輸入 Rectangle 則生成一個三角形這樣. - 抽象工廠模式
看的不是特別懂, 只知道是工廠模式之上再抽象了一層. 創(chuàng)建的對象是工廠對象. - 創(chuàng)造者模式
適用于對象初始化的時候, 初始變量比較麻煩的情況. 我看的文章例子舉得很形象, 如:
new ComputerBilder().screen("普通屏幕").CPU("i7").GPU("1080TI").disk("disk").memory("無線鼠標(biāo)").build()
- 原型模式
適用于復(fù)用對象的情況. 比如說對象初始化需要進(jìn)行很多操作(進(jìn)行多次sql查詢等等). 因?yàn)槎啻纬跏蓟Y(jié)果應(yīng)該是一致的, 所以重新創(chuàng)建對象, 進(jìn)行一次初始化操作就比較耗費(fèi)性能, 取而代之的方式是將之前的對象直接 clone 一份.