国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
學(xué)習(xí)GoF設(shè)計(jì)模式的重要性 設(shè)計(jì)模式學(xué)習(xí) 研究

學(xué)習(xí)GoF設(shè)計(jì)模式的重要性

板橋里人 http://www.jdon.com 2002/05/24

著名的EJB領(lǐng)域頂尖的專(zhuān)家Richard Monson-Haefel在其個(gè)人網(wǎng)站:www.EJBNow.com中極力推薦的GoF的《設(shè)計(jì)模式》,原文如下:

Design Patterns
Most developers claim to experience an epiphany reading this book. If you've never read the Design Patterns book then you have suffered a very serious gap in your programming education that should be remedied immediately.

翻譯: 很多程序員在讀完這本書(shū),宣布自己相當(dāng)于經(jīng)歷了一次"主顯節(jié)"(紀(jì)念那穌降生和受洗的雙重節(jié)日),如果你從來(lái)沒(méi)有讀過(guò)這本書(shū),你會(huì)在你的程序教育生涯里存在一個(gè)嚴(yán)重裂溝,所以你應(yīng)該立即挽救彌補(bǔ)!

可以這么說(shuō):GoF設(shè)計(jì)模式是程序員真正掌握面向?qū)ο蠛诵乃枷氲谋匦拚n。雖然你可能已經(jīng)通過(guò)了SUN的很多令人炫目的技術(shù)認(rèn)證,但是如果你沒(méi)有學(xué)習(xí)掌握GoF設(shè)計(jì)模式,只能說(shuō)明你還是一個(gè)技工。

在瀏覽《Thingking in Java》(第一版)時(shí),你是不是覺(jué)得好象這還是一本Java基礎(chǔ)語(yǔ)言書(shū)籍?但又不純粹是,因?yàn)檫@本書(shū)的作者將面向?qū)ο蟮乃枷肭擅畹娜诤显贘ava的具體技術(shù)上,潛移默化的讓你感覺(jué)到了一種新的語(yǔ)言和新的思想方式的誕生。

但是讀完這本書(shū),你對(duì)書(shū)中這些蘊(yùn)含的思想也許需要一種更明晰更系統(tǒng)更透徹的了解和掌握,那么你就需要研讀GoF的《設(shè)計(jì)模式》了。

《Thingking in Java》(第一版中文)是這樣描述設(shè)計(jì)模式的:他在由Gamma, Helm和Johnson Vlissides簡(jiǎn)稱(chēng)Gang of Four(四人幫),縮寫(xiě)GoF編著的《Design Patterns》一書(shū)中被定義成一個(gè)“里程碑”。事實(shí)上,那本書(shū)現(xiàn)在已成為幾乎所有OOP(面向?qū)ο蟪绦蛟O(shè)計(jì))程序員都必備的參考書(shū)。(在國(guó)外是如此)。

GoF的《設(shè)計(jì)模式》是所有面向?qū)ο笳Z(yǔ)言(C++ Java C#)的基礎(chǔ),只不過(guò)不同的語(yǔ)言將之實(shí)現(xiàn)得更方便地使用。

GOF的設(shè)計(jì)模式是一座"橋"
就Java語(yǔ)言體系來(lái)說(shuō),GOF的設(shè)計(jì)模式是Java基礎(chǔ)知識(shí)和J2EE框架知識(shí)之間一座隱性的"橋"。

會(huì)Java的人越來(lái)越多,但是一直徘徊在語(yǔ)言層次的程序員不在少數(shù),真正掌握J(rèn)ava中接口或抽象類(lèi)的應(yīng)用不是很多,大家經(jīng)常以那些技術(shù)只適合大型項(xiàng)目為由,避開(kāi)或忽略它們,實(shí)際中,Java的接口或抽象類(lèi)是真正體現(xiàn)Java思想的核心所在,這些你都將在GoF的設(shè)計(jì)模式里領(lǐng)略到它們變幻無(wú)窮的魔力。

GoF的設(shè)計(jì)模式表面上好象也是一種具體的"技術(shù)",而且新的設(shè)計(jì)模式不斷在出現(xiàn),設(shè)計(jì)模式自有其自己的發(fā)展軌道,而這些好象和J2EE .Net等技術(shù)也無(wú)關(guān)!

實(shí)際上,GoF的設(shè)計(jì)模式并不是一種具體"技術(shù)",它講述的是思想,它不僅僅展示了接口或抽象類(lèi)在實(shí)際案例中的靈活應(yīng)用和智慧,讓你能夠真正掌握接口或抽象類(lèi)的應(yīng)用,從而在原來(lái)的Java語(yǔ)言基礎(chǔ)上躍進(jìn)一步,更重要的是,GoF的設(shè)計(jì)模式反復(fù)向你強(qiáng)調(diào)一個(gè)宗旨:要讓你的程序盡可能的可重用。

這其實(shí)在向一個(gè)極限挑戰(zhàn):軟件需求變幻無(wú)窮,計(jì)劃沒(méi)有變化快,但是我們還是要尋找出不變的東西,并將它和變化的東西分離開(kāi)來(lái),這需要非常的智慧和經(jīng)驗(yàn)。

而GoF的設(shè)計(jì)模式是在這方面開(kāi)始探索的一塊里程碑。

J2EE等屬于一種框架軟件,什么是框架軟件?它不同于我們以前接觸的Java API等,那些屬于Toolkist(工具箱),它不再被動(dòng)的被使用,被調(diào)用,而是深刻的介入到一個(gè)領(lǐng)域中去,J2EE等框架軟件設(shè)計(jì)的目的是將一個(gè)領(lǐng)域中不變的東西先定義好,比如整體結(jié)構(gòu)和一些主要職責(zé)(如數(shù)據(jù)庫(kù)操作 事務(wù)跟蹤 安全等),剩余的就是變化的東西,針對(duì)這個(gè)領(lǐng)域中具體應(yīng)用產(chǎn)生的具體不同的變化需求,而這些變化東西就是J2EE程序員所要做的。

由此可見(jiàn),設(shè)計(jì)模式和J2EE在思想和動(dòng)機(jī)上是一脈相承,只不過(guò)

1.設(shè)計(jì)模式更抽象,J2EE是具體的產(chǎn)品代碼,我們可以接觸到,而設(shè)計(jì)模式在對(duì)每個(gè)應(yīng)用時(shí)才會(huì)產(chǎn)生具體代碼。

2.設(shè)計(jì)模式是比J2EE等框架軟件更小的體系結(jié)構(gòu),J2EE中許多具體程序都是應(yīng)用設(shè)計(jì)模式來(lái)完成的,當(dāng)你深入到J2EE的內(nèi)部代碼研究時(shí),這點(diǎn)尤其明顯,因此,如果你不具備設(shè)計(jì)模式的基礎(chǔ)知識(shí)(GoF的設(shè)計(jì)模式),你很難快速的理解J2EE。不能理解J2EE,如何能靈活應(yīng)用?

3.J2EE只是適合企業(yè)計(jì)算應(yīng)用的框架軟件,但是GoF的設(shè)計(jì)模式幾乎可以用于任何應(yīng)用!因此GoF的設(shè)計(jì)模式應(yīng)該是J2EE的重要理論基礎(chǔ)之一。

所以說(shuō),GoF的設(shè)計(jì)模式是Java基礎(chǔ)知識(shí)和J2EE框架知識(shí)之間一座隱性的"橋"。為什么說(shuō)隱性的?

GOF的設(shè)計(jì)模式是一座隱性的"橋"
因?yàn)楹芏嗳藳](méi)有注意到這點(diǎn),學(xué)完Java基礎(chǔ)語(yǔ)言就直接去學(xué)J2EE,有的甚至鴨子趕架,直接使用起Weblogic等具體J2EE軟件,一段時(shí)間下來(lái),發(fā)現(xiàn)不過(guò)如此,挺簡(jiǎn)單好用,但是你真正理解J2EE了嗎?你在具體案例中的應(yīng)用是否也是在延伸J2EE的思想?

如果你不能很好的延伸J2EE的思想,那你豈非是大炮轟蚊子,認(rèn)識(shí)到J2EE不是適合所有場(chǎng)合的人至少是明智的,但我們更需要將J2EE用對(duì)地方,那么只有理解J2EE此類(lèi)框架軟件的精髓,那么你才能真正靈活應(yīng)用Java解決你的問(wèn)題,甚至構(gòu)架出你自己企業(yè)的框架來(lái)。(我們不能總是使用別人設(shè)定好的框架,為什么不能有我們自己的框架?)

因此,首先你必須掌握GoF的設(shè)計(jì)模式。雖然它是隱性,但不是可以越過(guò)的。

 

關(guān)于本站“設(shè)計(jì)模式”

Java提供了豐富的API,同時(shí)又有強(qiáng)大的數(shù)據(jù)庫(kù)系統(tǒng)作底層支持,那么我們的編程似乎變成了類(lèi)似積木的簡(jiǎn)單"拼湊"和調(diào)用,甚至有人提倡"藍(lán)領(lǐng)程序員",這些都是對(duì)現(xiàn)代編程技術(shù)的不了解所至.

在真正可復(fù)用的面向?qū)ο缶幊讨?GoF的《設(shè)計(jì)模式》為我們提供了一套可復(fù)用的面向?qū)ο蠹夹g(shù),再配合Refactoring(重構(gòu)方法),所以很少存在簡(jiǎn)單重復(fù)的工作,加上Java代碼的精煉性和面向?qū)ο蠹儩嵭?設(shè)計(jì)模式是java的靈魂),編程工作將變成一個(gè)讓你時(shí)刻體驗(yàn)創(chuàng)造快感的激動(dòng)人心的過(guò)程.

為能和大家能共同探討"設(shè)計(jì)模式",我將自己在學(xué)習(xí)中的心得寫(xiě)下來(lái),只是想幫助更多人更容易理解GoF的《設(shè)計(jì)模式》。由于原著都是以C++為例, 以Java為例的設(shè)計(jì)模式基本又都以圖形應(yīng)用為例,而我們更關(guān)心Java在中間件等服務(wù)器方面的應(yīng)用,因此,本站所有實(shí)例都是非圖形應(yīng)用,并且順帶剖析Jive論壇系統(tǒng).同時(shí)為降低理解難度,盡量避免使用UML圖.

如果你有一定的面向?qū)ο缶幊探?jīng)驗(yàn),你會(huì)發(fā)現(xiàn)其中某些設(shè)計(jì)模式你已經(jīng)無(wú)意識(shí)的使用過(guò)了;如果你是一個(gè)新手,那么從開(kāi)始就培養(yǎng)自己良好的編程習(xí)慣(讓你的的程序使用通用的模式,便于他人理解;讓你自己減少重復(fù)性的編程工作),這無(wú)疑是成為一個(gè)優(yōu)秀程序員的必備條件.

整個(gè)設(shè)計(jì)模式貫穿一個(gè)原理:面對(duì)接口編程,而不是面對(duì)實(shí)現(xiàn).目標(biāo)原則是:降低耦合,增強(qiáng)靈活性

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
5本最佳的Java面向?qū)ο罄碚摵驮O(shè)計(jì)模式的書(shū)籍
假如時(shí)光能夠倒流,我會(huì)這么學(xué)習(xí)Java
我打算如何學(xué)習(xí)J2EE
Java程序員應(yīng)當(dāng)知道的10個(gè)面向?qū)ο笤O(shè)計(jì)原則
java程序員必讀書(shū)單
Java程序員必讀的10本書(shū)籍
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服