更新時(shí)間:2021-08-10 13:22:12 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1378次
設(shè)計(jì)模式,解決某一問(wèn)題的最佳實(shí)踐。針對(duì)某一具體的需求選擇某一模式把它解決。它是領(lǐng)域中的一些大神經(jīng)過(guò)大量實(shí)踐總結(jié)出的一套規(guī)律、法則,以便后來(lái)人可以套用而不用去做重復(fù)的工作。
工廠模式并不僅僅是用來(lái)new出一個(gè)類的對(duì)象的。
簡(jiǎn)單工廠確實(shí)如題主的描述所說(shuō),是一個(gè)工廠對(duì)應(yīng)一個(gè)類的關(guān)系。
在這里,可以舉出一些復(fù)雜的例子,與題主的描述不同。
假設(shè)有代碼包A和代碼包B,
代碼包B是代碼包A的調(diào)用者,A向B暴露接口InterfaceA。
在A的內(nèi)部結(jié)構(gòu)中,實(shí)現(xiàn)了InterfaceA的有ClassA1,ClassA2,ClassA3,……ClassA100。
但是B并不關(guān)心這些,因?yàn)閷?duì)于B來(lái)說(shuō),A的功能只有一個(gè),就是InterfaceA。
這個(gè)時(shí)候,B想要使用一個(gè)InterfaceA的實(shí)現(xiàn),想要new一個(gè)出來(lái),但又不想與代碼包A中的復(fù)雜的構(gòu)造邏輯耦合,怎么辦?
只能向代碼包A中傳遞參數(shù),交給代碼包A自己選擇到底是那個(gè)ClassA1還是A100被new出來(lái)。
而這個(gè)對(duì)構(gòu)造過(guò)程進(jìn)行選擇的邏輯,就是工廠。
當(dāng)然了,我這里舉的例子是InterfaceA,你也可以用AbstractClassA之類的。
工廠在這里面起的作用,就是隱藏了創(chuàng)建過(guò)程的復(fù)雜度,以配合InterfaceA對(duì)那一百個(gè)子類的復(fù)雜度進(jìn)行隱藏,這樣B只要知道上轉(zhuǎn)型之后的InterfaceA即可,簡(jiǎn)單清晰。
以上就是動(dòng)力節(jié)點(diǎn)小編介紹的"Java工廠設(shè)計(jì)模式的用處",希望對(duì)大家有幫助,想了解更多可查看Java設(shè)計(jì)模式。動(dòng)力節(jié)點(diǎn)在線學(xué)習(xí)教程,針對(duì)沒(méi)有任何Java基礎(chǔ)的讀者學(xué)習(xí),讓你從入門到精通,主要介紹了一些Java基礎(chǔ)的核心知識(shí),讓同學(xué)們更好更方便的學(xué)習(xí)和了解Java編程,感興趣的同學(xué)可以關(guān)注一下。
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)