建造者模式与原型模式/builder模式与prototype模式/创建型模式
建造者模式
定義
用于簡化復雜對象的創(chuàng)建
JDK中的建造者模式
java.lang.StringBuilder中的append()方法,每次調(diào)用后返回修改后的對象本身。
public StringBuilder append(String str) {super.append(str);return this;} //父類AbstractStringBuilder public AbstractStringBuilder append(String str) {if (str == null)return appendNull();int len = str.length();ensureCapacityInternal(count + len);str.getChars(0, len, value, count);count += len;return this;}建造者模式和工廠模式的區(qū)別
建造者模式將很多功能集成到一個類里,這個類可以創(chuàng)造出比較復雜的東西。
所以與工程模式的區(qū)別就是:工廠模式關注的是創(chuàng)建單個產(chǎn)品,而建造者模式則關注創(chuàng)建符合對象,多個部分。
因此,是選擇工廠模式還是建造者模式,依實際情況而定。
原型模式
定義
原型模式雖然是創(chuàng)建型的模式,但是與工程模式?jīng)]有關系,從名字即可看出,該模式的思想就是將一個對象作為原型,
對其進行復制、克隆,產(chǎn)生一個和原對象類似的新對象。本小結(jié)會通過對象的復制,進行講解。
在Java中,復制對象是通過clone()實現(xiàn)的,先創(chuàng)建一個原型類:
深復制和淺復制
淺復制:將一個對象復制后,基本數(shù)據(jù)類型的變量都會重新創(chuàng)建,而引用類型,指向的還是原對象所指向的。
深復制:將一個對象復制后,不論是基本數(shù)據(jù)類型還有引用類型,都是重新創(chuàng)建的。簡單來說,就是深復制進行了完全徹底的復制,而淺復制不徹底。`
轉(zhuǎn)載于:https://www.cnblogs.com/lknny/p/4853581.html
總結(jié)
以上是生活随笔為你收集整理的建造者模式与原型模式/builder模式与prototype模式/创建型模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ajax遇到的问题
- 下一篇: 11.2.2 例题11-3 Buy or