- 相關(guān)推薦
關(guān)于Java動(dòng)態(tài)實(shí)現(xiàn)的方法
如果需要像前面自行車的例子一樣,創(chuàng)建一些用不同方式實(shí)現(xiàn)同一接口的對(duì)象,那么可以使用一個(gè)工廠方法或簡(jiǎn)單工廠對(duì)象來(lái)簡(jiǎn)化選擇實(shí)現(xiàn)的過(guò)程。這種選擇可以是明確進(jìn)行的也可以是隱含的。前者如自行車那個(gè)例子,顧客可以選擇需要的自行車型號(hào);而下一節(jié)所講的XHR工廠那個(gè)例子則屬于后者,該例中所返回的連接對(duì)象的類型取決于所探查到的帶寬和網(wǎng)絡(luò)延時(shí)等因素。在這些場(chǎng)合下,你通常要與一系列實(shí)現(xiàn)了同一個(gè)接口、可以被同等對(duì)待的類打交道。這是JavaScript中使用工廠模式的最常見(jiàn)的原因。
如果對(duì)象需要進(jìn)行復(fù)雜并且彼此相關(guān)的設(shè)置,那么使用工廠模式可以減少每種對(duì)象所需的代碼量。如果這種設(shè)置只需要為特定類型的所有實(shí)例執(zhí)行一次即可,這種作用尤其突出。把這種設(shè)置代碼放到類的構(gòu)造函數(shù)中并不是一種高效的做法,這是因?yàn)榧幢阍O(shè)置工作已經(jīng)完成,每次創(chuàng)建新實(shí)例的時(shí)候這些代碼還是會(huì)執(zhí)行,而且這樣做會(huì)把設(shè)置代碼分散到不同的類中。工廠方法非常適合于這種場(chǎng)合。它可以在實(shí)例化所有需要的對(duì)象之前先一次性地進(jìn)行設(shè)置。無(wú)論有多少不同的類會(huì)被實(shí)例化,這種辦法都可以讓設(shè)置代碼集中在一個(gè)地方。
如果所用的類要求加載外部庫(kù)的話,這尤其有用。工廠方法可以對(duì)這些庫(kù)進(jìn)行檢查并動(dòng)態(tài)加載那些未找到的庫(kù)。這些設(shè)置代碼只存在于一個(gè)地方,因此以后改起來(lái)也方便得多。
【Java動(dòng)態(tài)實(shí)現(xiàn)的方法】相關(guān)文章:
java利用反射實(shí)現(xiàn)動(dòng)態(tài)代理實(shí)現(xiàn)代碼10-08
java使用動(dòng)態(tài)代理來(lái)實(shí)現(xiàn)AOP05-29
Java中如何實(shí)現(xiàn)顯示動(dòng)態(tài)的時(shí)間09-28
java動(dòng)態(tài)方法調(diào)度實(shí)例10-01
JAVA實(shí)現(xiàn)生成GUID的方法06-02