Java創(chuàng)建類模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
創(chuàng)建類模式主要關(guān)注對(duì)象的創(chuàng)建過程,將對(duì)象的創(chuàng)建過程進(jìn)行封裝,使客戶端可以直接得到對(duì)象,而不用去關(guān)心如何創(chuàng)建對(duì)象。創(chuàng)建類模式有5種,分別是:
單例模式:用于得到內(nèi)存中的唯一對(duì)象。
工廠方法模式:用于創(chuàng)建復(fù)雜對(duì)象。
抽象工廠模式:用于創(chuàng)建一組相關(guān)或相互依賴的復(fù)雜對(duì)象。
建造者模式:用于創(chuàng)建模塊化的更加復(fù)雜的對(duì)象。
原型模式:用于得到一個(gè)對(duì)象的拷貝。
為什么需要?jiǎng)?chuàng)建性模式
首先,在編程中,對(duì)象的創(chuàng)建通常是一件比較復(fù)雜的事,因?yàn)?,為了達(dá)到降低耦合的目的,我們通常采用面向抽象編程的方式,對(duì)象間的關(guān)系不會(huì)硬編碼到類中,而是等到調(diào)用的時(shí)候再進(jìn)行組裝,這樣雖然降低了對(duì)象間的耦合,提高了對(duì)象復(fù)用的可能,但在一定程度上將組裝類的任務(wù)都交給了最終調(diào)用的客戶端程序,大大增加了客戶端程序的復(fù)雜度。采用創(chuàng)建類模式的優(yōu)點(diǎn)之一就是將組裝對(duì)象的過程封裝到一個(gè)單獨(dú)的類中,這樣,既不會(huì)增加對(duì)象間的耦合,又可以最大限度的減小客戶端的負(fù)擔(dān)。
其次,使用普通的方式創(chuàng)建對(duì)象,一般都是返回一個(gè)具體的對(duì)象,即所謂的面向?qū)崿F(xiàn)編程,這與設(shè)計(jì)模式原則是相違背的。采用創(chuàng)建類模式則可以實(shí)現(xiàn)面向抽象編程??蛻舳艘蟮闹皇且粋€(gè)抽象的類型,具體返回什么樣的對(duì)象,由創(chuàng)建者來決定。
再次,可以對(duì)創(chuàng)建對(duì)象的過程進(jìn)行優(yōu)化,客戶端關(guān)注的只是得到對(duì)象,對(duì)對(duì)象的創(chuàng)建過程則不關(guān)心,因此,創(chuàng)建者可以對(duì)創(chuàng)建的過程進(jìn)行優(yōu)化,例如在特定條件下,如果使用單例模式或者是使用原型模式,都可以優(yōu)化系統(tǒng)的性能。
總結(jié)
所有的創(chuàng)建類模式本質(zhì)上都是對(duì)對(duì)象的創(chuàng)建過程進(jìn)行封裝。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 5種Java經(jīng)典創(chuàng)建型模式詳解
- Java設(shè)計(jì)模式之創(chuàng)建者模式簡介
- Java設(shè)計(jì)模式之觀察者模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- Java設(shè)計(jì)模式之命令模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- 建造者模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- 單例模式垃圾回收_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- JAVA 枚舉單例模式及源碼分析的實(shí)例詳解
- 工廠模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- 簡單工廠模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- 工廠方法模式_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
相關(guān)文章
如何通過ServletInputStream讀取http請(qǐng)求傳入的數(shù)據(jù)
這篇文章主要介紹了如何通過ServletInputStream讀取http請(qǐng)求傳入的數(shù)據(jù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10Spring-boot 2.3.x源碼基于Gradle編譯過程詳解
這篇文章主要介紹了Spring-boot 2.3.x源碼基于Gradle編譯過程詳解,本文通過實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12使用MyBatis-Generator如何自動(dòng)生成映射文件
這篇文章主要介紹了使用MyBatis-Generator如何自動(dòng)生成映射文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02SpringBoot2.0 整合 SpringSecurity 框架實(shí)現(xiàn)用戶權(quán)限安全管理方法
Spring Security是一個(gè)能夠?yàn)榛赟pring的企業(yè)應(yīng)用系統(tǒng)提供聲明式的安全訪問控制解決方案的安全框架。這篇文章主要介紹了SpringBoot2.0 整合 SpringSecurity 框架,實(shí)現(xiàn)用戶權(quán)限安全管理 ,需要的朋友可以參考下2019-07-07idea install 時(shí)提示jdk的某個(gè)jar包的包不存在的問題
這篇文章主要介紹了idea install 時(shí)提示jdk的某個(gè)jar包的包不存在的問題,本文給大家分享解決方法,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09java 使用DecimalFormat進(jìn)行數(shù)字的格式化實(shí)例詳解
這篇文章主要介紹了java 使用DecimalFormat進(jìn)行數(shù)字的格式化實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-06-06SpringBoot集成Sharding Jdbc使用復(fù)合分片的實(shí)踐
數(shù)據(jù)庫分庫分表中間件是采用的 apache sharding。本文主要介紹了SpringBoot集成Sharding Jdbc使用復(fù)合分片的實(shí)踐,具有一定的參考價(jià)值,感興趣的可以了解一下2021-09-09實(shí)戰(zhàn)SpringBoot集成JWT實(shí)現(xiàn)token驗(yàn)證
本文詳細(xì)講解了SpringBoot集成JWT實(shí)現(xiàn)token驗(yàn)證,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12