鍍金池/ 教程/ Java/ 創(chuàng )建類(lèi)模式總結篇
訪(fǎng)問(wèn)者模式
訪(fǎng)問(wèn)者模式討論篇:java的動(dòng)態(tài)綁定與雙分派
責任連模式
迭代器模式
策略模式
命令模式
單例模式
建造者模式
解釋器模式
工廠(chǎng)方法模式
備忘錄模式
原型模式
單例模式討論篇:?jiǎn)卫J脚c垃圾回收
觀(guān)察者模式
模版方法模式
創(chuàng )建類(lèi)模式總結篇
抽象工廠(chǎng)模式
中介者模式

創(chuàng )建類(lèi)模式總結篇

創(chuàng )建類(lèi)模式主要關(guān)注對象的創(chuàng )建過(guò)程,將對象的創(chuàng )建過(guò)程進(jìn)行封裝,使客戶(hù)端可以直接得到對象,而不用去關(guān)心如何創(chuàng )建對象。創(chuàng )建類(lèi)模式有5種,分別是:

為什么需要創(chuàng )建性模式

首先,在編程中,對象的創(chuàng )建通常是一件比較復雜的事,因為,為了達到降低耦合的目的,我們通常采用面向抽象編程的方式,對象間的關(guān)系不會(huì )硬編碼到類(lèi)中,而是等到調用的時(shí)候再進(jìn)行組裝,這樣雖然降低了對象間的耦合,提高了對象復用的可能,但在一定程度上將組裝類(lèi)的任務(wù)都交給了最終調用的客戶(hù)端程序,大大增加了客戶(hù)端程序的復雜度。采用創(chuàng )建類(lèi)模式的優(yōu)點(diǎn)之一就是將組裝對象的過(guò)程封裝到一個(gè)單獨的類(lèi)中,這樣,既不會(huì )增加對象間的耦合,又可以最大限度的減小客戶(hù)端的負擔。

其次,使用普通的方式創(chuàng )建對象,一般都是返回一個(gè)具體的對象,即所謂的面向實(shí)現編程,這與設計模式原則是相違背的。采用創(chuàng )建類(lèi)模式則可以實(shí)現面向抽象編程??蛻?hù)端要求的只是一個(gè)抽象的類(lèi)型,具體返回什么樣的對象,由創(chuàng )建者來(lái)決定。

再次,可以對創(chuàng )建對象的過(guò)程進(jìn)行優(yōu)化,客戶(hù)端關(guān)注的只是得到對象,對對象的創(chuàng )建過(guò)程則不關(guān)心,因此,創(chuàng )建者可以對創(chuàng )建的過(guò)程進(jìn)行優(yōu)化,例如在特定條件下,如果使用單例模式或者是使用原型模式,都可以?xún)?yōu)化系統的性能。

總結

所有的創(chuàng )建類(lèi)模式本質(zhì)上都是對對象的創(chuàng )建過(guò)程進(jìn)行封裝。

上一篇:責任連模式下一篇:原型模式