首頁(yè) 考試吧論壇 Exam8視線 考試商城 網(wǎng)絡(luò)課程 模擬考試 考友錄 實(shí)用文檔 繽紛校園 英語(yǔ)學(xué)習(xí)
2010考研 | 自學(xué)考試 | 成人高考 | 專 升 本 | 法律碩士 | MBA/MPA | 中 科 院
四六級(jí) | 商務(wù)英語(yǔ) | 公共英語(yǔ) | 職稱日語(yǔ) | 職稱英語(yǔ) | 博思 | 口譯筆譯 | GRE GMAT | 日語(yǔ) | 托福
雅思 | 專四專八 | 新概念 | 自考英語(yǔ) | 零起點(diǎn)英、、、韓語(yǔ) | 在職申碩英語(yǔ)
在職攻碩英語(yǔ) | 成人英語(yǔ)三級(jí)
等級(jí)考試 | 水平考試 | 微軟認(rèn)證 | 思科認(rèn)證 | Oracle認(rèn)證 | Linux認(rèn)證
公務(wù)員 | 報(bào)關(guān)員 | 報(bào)檢員 | 外銷員 | 司法考試 | 導(dǎo)游考試 | 教師資格 | 國(guó)際商務(wù)師 | 跟單員
單證員 | 物流師 | 價(jià)格鑒證師 | 銀行從業(yè)資格 | 證券從業(yè)資格 | 人力資源管理師 | 管理咨詢師
期貨從業(yè)資格 | 社會(huì)工作者
會(huì)計(jì)職稱 | 注會(huì)CPA | 經(jīng)濟(jì)師 | 統(tǒng)計(jì)師 | 注冊(cè)稅務(wù)師 | 評(píng)估師 | 精算師 | 高會(huì) | ACCA | 審計(jì)師
法律顧問(wèn) | 會(huì)計(jì)證
一級(jí)建造師 | 二級(jí)建造師 | 造價(jià)師 | 監(jiān)理師 | 安全師 | 咨詢師 | 結(jié)構(gòu)師 | 建筑師 | 安全評(píng)價(jià)師
房地產(chǎn)估價(jià)師 | 土地估價(jià)師 | 設(shè)備監(jiān)理師 | 巖土工程師 | 質(zhì)量資格 | 房地產(chǎn)經(jīng)紀(jì)人 | 造價(jià)員
投資項(xiàng)目管理 | 土地代理人 | 環(huán)保師 | 環(huán)境影響評(píng)價(jià) | 物業(yè)管理師 | 城市規(guī)劃師 | 公路監(jiān)理師
公路造價(jià)工程師 | 招標(biāo)師
執(zhí)業(yè)護(hù)士 | 執(zhí)業(yè)醫(yī)師 | 執(zhí)業(yè)藥師 | 衛(wèi)生資格
您現(xiàn)在的位置: 考試吧(Exam8.com) > 軟件水平考試 > 系統(tǒng)分析師 > 正文

Java設(shè)計(jì)模式之綜述篇

   自從J2EE出現(xiàn)以來(lái),就大大簡(jiǎn)化了在Java下的企業(yè)級(jí)開(kāi)發(fā)。但是隨著J2EE越來(lái)越普遍地被應(yīng)用到各個(gè)領(lǐng)域中,開(kāi)發(fā)者們漸漸意識(shí)到需要一種方法來(lái)標(biāo)準(zhǔn)化應(yīng)用程序的開(kāi)發(fā)過(guò)程,他們采用的方法是標(biāo)準(zhǔn)化應(yīng)用程序的結(jié)構(gòu)層。在結(jié)構(gòu)層通常封裝了一些獨(dú)立于業(yè)務(wù)邏輯的復(fù)雜技術(shù),以便在業(yè)務(wù)邏輯和底層的架構(gòu)之間建立起弱連接。在個(gè)專題中將會(huì)介紹一些設(shè)計(jì)模式,通過(guò)利用這些設(shè)計(jì)模式,開(kāi)發(fā)人員可以達(dá)到標(biāo)準(zhǔn)化和簡(jiǎn)化應(yīng)用程序開(kāi)發(fā)過(guò)程的目的。

  應(yīng)用程序結(jié)構(gòu)和J2EE

  J2EE是一個(gè)很成功的技術(shù),它為一些基本的任務(wù)提供了一致的標(biāo)準(zhǔn),例如數(shù)據(jù)庫(kù)連接、分布式應(yīng)用程序等。但是使用J2EE并不能保證開(kāi)發(fā)人員開(kāi)發(fā)出成功的應(yīng)用程序。有些人認(rèn)為J2EE本身就是一種框架技術(shù),但是這種認(rèn)識(shí)是不正確的,我們應(yīng)該意識(shí)到J2EE并沒(méi)有提供一個(gè)能夠幫助開(kāi)發(fā)人員開(kāi)發(fā)出高質(zhì)量應(yīng)用程序的框架,因此很多有經(jīng)驗(yàn)的開(kāi)發(fā)人員通過(guò)利用設(shè)計(jì)模式來(lái)彌補(bǔ)這一缺項(xiàng)。

  設(shè)計(jì)模式

  在開(kāi)發(fā)人員的圈子中,大家通過(guò)相互交流在開(kāi)發(fā)過(guò)程中所遇到的問(wèn)題以及解決方法來(lái)豐富整個(gè)圈子的經(jīng)驗(yàn)。而設(shè)計(jì)模式就是在這樣的情況下產(chǎn)生的。一個(gè)設(shè)計(jì)模式必然是針對(duì)某個(gè)特定的問(wèn)題的,這個(gè)問(wèn)題的解決方案以及這樣解決問(wèn)題產(chǎn)生的后果。在解決利用J2EE進(jìn)行程序開(kāi)發(fā)中出現(xiàn)的問(wèn)題的過(guò)程中,人們把設(shè)計(jì)模式分為兩類,一種是通用開(kāi)發(fā)模式,一種是為了解決特定的J2EE問(wèn)題的模式。下面讓我們來(lái)看一看每一種類型的開(kāi)發(fā)模式都包含了哪些內(nèi)容。

  J2EE設(shè)計(jì)模式在過(guò)去幾年中隨著Java開(kāi)發(fā)人員經(jīng)驗(yàn)的不斷成長(zhǎng)而發(fā)展。這些設(shè)計(jì)模式是針對(duì)使用各種J2EE技術(shù)時(shí)可能出現(xiàn)的問(wèn)題提出的,它們能夠幫助開(kāi)發(fā)人員構(gòu)造出應(yīng)用程序框架的要求。例如,F(xiàn)ront Controller(前端控件)模式將servlet代碼的開(kāi)發(fā)轉(zhuǎn)化為在圖形用戶界面下的開(kāi)發(fā)。但是需要記住J2EE設(shè)計(jì)模型解決了那些在J2EE項(xiàng)目中最可能出現(xiàn)的問(wèn)題。如果你在J2EE遇到的問(wèn)題很特殊,很有可能沒(méi)有相應(yīng)的設(shè)計(jì)模型來(lái)解決它。 mda.com

  軟件開(kāi)發(fā)設(shè)計(jì)模式又被分為兩種,一種是通用的面向?qū)ο笤O(shè)計(jì)模式。例如工廠(Factory)模式是一種面向?qū)ο蟮脑O(shè)計(jì)模式,它將對(duì)象的創(chuàng)建封裝起來(lái),使對(duì)象能夠重用,這樣就可以減少程序占用的系統(tǒng)資源。而另一種是基于Java的設(shè)計(jì)模式,這些設(shè)計(jì)模式要么是和Java的語(yǔ)言特性結(jié)合得很緊,要么是面向?qū)ο蠹夹g(shù)在Java中的深化。不要以為軟件設(shè)計(jì)模式相對(duì)獨(dú)立于J2EE就認(rèn)為它們不重要,通常它們比J2EE設(shè)計(jì)模式更重要。這是因?yàn)椋?

  1)J2EE設(shè)計(jì)模式是近幾年才出現(xiàn)的,并且在不斷變化,而軟件開(kāi)發(fā)設(shè)計(jì)模式經(jīng)過(guò)了長(zhǎng)時(shí)間的考驗(yàn),比前者更加成熟和完善;

  2)有些J2EE設(shè)計(jì)模式是建立在某些軟件開(kāi)發(fā)設(shè)計(jì)模式之上的;

  3)軟件開(kāi)發(fā)模式為J2EE設(shè)計(jì)模式提供了堅(jiān)實(shí)的基礎(chǔ)。它的應(yīng)用將影響到整個(gè)結(jié)構(gòu)的穩(wěn)定性和可擴(kuò)充性。

  在實(shí)際應(yīng)用中,設(shè)計(jì)模式并不是一段具體的代碼。設(shè)計(jì)模式通常是在設(shè)計(jì)說(shuō)明書中描述。將設(shè)計(jì)模式應(yīng)用到系統(tǒng)中的真正挑戰(zhàn)在于如何在系統(tǒng)中應(yīng)用模式中的思想。這些思想必須被應(yīng)用到恰當(dāng)?shù)沫h(huán)境中。

  根據(jù)設(shè)計(jì)模式的所解決的問(wèn)題,又可以分為以下幾個(gè)類型:

  · 創(chuàng)建類型:創(chuàng)建類型的模式都是用于創(chuàng)建類的實(shí)例。但是和通過(guò)new來(lái)創(chuàng)建實(shí)例不同,這些模式提供了更加靈活的方式,是程序能夠根據(jù)特定的情況創(chuàng)建特定的類。

  · 結(jié)構(gòu)類型:結(jié)構(gòu)類型的模式幫助開(kāi)發(fā)人員將簡(jiǎn)單對(duì)象組合在一起以后的更加復(fù)雜的結(jié)構(gòu)。

  · 行為類型:行為類型的模式幫助開(kāi)發(fā)人員控制類之間的通訊。

  所有創(chuàng)建類型的模式都和如何有效地創(chuàng)建類的實(shí)例相關(guān)。在Java中,如果開(kāi)發(fā)人員要生成一個(gè)類的實(shí)例,最簡(jiǎn)單的方法是使用new關(guān)鍵字:

  MyFoo = new Foo(); // 生成一個(gè)Foo的實(shí)例

  這種方法只能夠在程序中生成固定的類。但是在很多情況下,程序需要根據(jù)不同的情況生成不同的類的實(shí)例,這就需要將實(shí)例的生成過(guò)程抽象到一個(gè)特殊的創(chuàng)建類中,由該類在運(yùn)行時(shí)決定生成哪種類的實(shí)例。這樣使得程序有更好的靈活性和通用性。

轉(zhuǎn)帖于:軟件水平考試_考試吧
文章搜索
Java設(shè)計(jì)模式之綜述篇網(wǎng)友評(píng)論網(wǎng)友評(píng)論
版權(quán)聲明 --------------------------------------------------------------------------------------
    如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請(qǐng)與我們聯(lián)系,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請(qǐng)注明出處。
 gaoxiaoliang