亚欧洲精品在线观看,窝窝影院午夜看片,久久国产成人午夜av影院宅,午夜91,免费国产人成网站,ts在线视频,欧美激情在线一区

java語言

Java架構(gòu)設(shè)計和開發(fā)中的小技巧

時間:2025-03-26 00:12:15 java語言 我要投稿
  • 相關(guān)推薦

Java架構(gòu)設(shè)計和開發(fā)中的小技巧

  架構(gòu)是在組件,彼此間和與環(huán)境間的關(guān)系,引導(dǎo)設(shè)計發(fā)展原則中體現(xiàn)系統(tǒng)的基本結(jié)構(gòu)。軟件架構(gòu)是軟件產(chǎn)品、軟件系統(tǒng)設(shè)計當(dāng)中的主體結(jié)構(gòu)和主要矛盾。任何軟件都有架構(gòu),哪怕一段短小的HelloWorld程序。軟件架構(gòu)設(shè)計的成敗決定了軟件產(chǎn)品和系統(tǒng)研發(fā)的成敗。軟件架構(gòu)自身所具有的屬性和特點,決定了軟件架構(gòu)設(shè)計的復(fù)雜性和難度。以下僅供參考!

  Java架構(gòu)設(shè)計

  軟件架構(gòu)作為一個概念,體現(xiàn)在技術(shù)和業(yè)務(wù)兩個方面。

  從技術(shù)角度來說:軟件架構(gòu)隨著技術(shù)的革新不斷地更新其內(nèi)容,軟件架構(gòu)建立于當(dāng)前技術(shù)和一些基本原則的基礎(chǔ)之上。

  先說一些基本原則:

  分層原則:分層是為了降低軟件深度復(fù)雜性而使用的關(guān)鍵思想,就像社會有了階級一樣,軟件有了層次結(jié)構(gòu)。

  模塊化原則:模塊化是化解軟件廣度復(fù)雜的必然手段,模塊化的目的就是讓軟件分工。

  接口實現(xiàn)分離原則隨著軟件模塊化的不斷深入改進(jìn),面向接口編程而不是面向?qū)崿F(xiàn)編程可以讓復(fù)雜度日趨增高的軟件降低模塊之間的耦合度,從而讓各模塊更輕松改進(jìn)。從這個原則出發(fā),軟件也從微觀進(jìn)行了細(xì)致的規(guī)范化。

  還有兩個比較小但很重要的原則:

  細(xì)節(jié)隱藏原則很顯然把復(fù)雜問題簡化,把難看的細(xì)節(jié)隱去,能讓軟件結(jié)構(gòu)更清晰。其實這個原則使用很普遍,java/c++語言中的封裝原則以及設(shè)計模式中的Facade(外觀)模式就很能體現(xiàn)這個原則的精神。

  依賴倒置原則隨著軟件結(jié)構(gòu)的進(jìn)一步發(fā)展,層與層之間、模塊與模塊之間的依賴逐漸加深,而層、模塊的動態(tài)可插拔要求不端增大。依賴倒置原則可看視 為接口實現(xiàn)分離原則的深化,根據(jù)此原則的精神,軟件進(jìn)入了工具時代。這個原則有點類似于知名的好萊塢法則:Don't call us, we'll call you。

  以上這些原則奠定了我們的軟件架構(gòu)的價值指標(biāo)。但軟件架構(gòu)畢竟是建立在當(dāng)前技術(shù)之上的。而每一代技術(shù)都有架構(gòu)模式。過去的不再說了,讓我們現(xiàn)在就來看一下當(dāng)前流行的技術(shù),以及當(dāng)前我們能采用的架構(gòu)。

  因為面向?qū)ο笫钱?dāng)前最流行開發(fā)技術(shù),且設(shè)計模式的大量使用使面向?qū)ο蟮淖呦虺墒,而?shù)據(jù)庫是當(dāng)前最有效的存儲結(jié)構(gòu)、web界面是當(dāng)前最流行的用 戶接口,所以當(dāng)前最典型的三層次架構(gòu)就架構(gòu)在以上幾項技術(shù)的基礎(chǔ)之上,用數(shù)據(jù)庫作存儲層、用面向?qū)ο髞韺崿F(xiàn)業(yè)務(wù)層、用web來作為用戶接口層。我們從三層 次架構(gòu)談起:

  因為面向?qū)ο蠹夹g(shù)和數(shù)據(jù)庫技術(shù)不適配,所以在標(biāo)準(zhǔn)三層次架構(gòu)的基礎(chǔ)上,我們增加了數(shù)據(jù)持久層,來管理O-R雙向映射,但目前一直沒有最理想的實 現(xiàn)技術(shù)。cmp和entity bean技術(shù)因為其實現(xiàn)復(fù)雜,功能前景有限,已接近被淘汰的邊緣。JDO及hibernate作為o-r映射的后期之秀,尤其是hibernate,功能 相當(dāng)完備。推薦作為持久層的首選。

  在業(yè)務(wù)層,因為當(dāng)前業(yè)務(wù)日趨負(fù)載,且變動頻繁,所以我們必須有足夠敏捷的技術(shù)來保證我們的適應(yīng)變化的能力,在標(biāo)準(zhǔn)j2ee系統(tǒng)中session bean負(fù)責(zé)業(yè)務(wù)處理,且有不錯的性能表現(xiàn),但采用ejb系統(tǒng)對業(yè)務(wù)架構(gòu)模式改變太大,且其復(fù)雜而昂貴,業(yè)務(wù)代碼移植性差。而spring 作為一個bean配置的輕量級架構(gòu),漂亮的IOC模式實現(xiàn),對業(yè)務(wù)架構(gòu)影響小,所以推薦作為中間層業(yè)務(wù)框架。

  在用戶結(jié)構(gòu)層,雖然servlet/jsp/jstl/javaBean 能夠?qū)崿F(xiàn)MVC架構(gòu),但終究過于粗糙。struts對MVC架構(gòu)的實現(xiàn)就比較完美,Taperstry也極好地實現(xiàn)MVC架構(gòu),且采用基于事件的方式,非 常誘人,惜其不夠成熟,我們?nèi)耘f推薦struts作為用戶接口層基礎(chǔ)架構(gòu)。

  因為業(yè)務(wù)層是三層次架構(gòu)中最有決定意義的,所以讓我們回到業(yè)務(wù)層細(xì)致地分析一下,在復(fù)雜的業(yè)務(wù)我們常常需要以下基礎(chǔ)服務(wù)的一種或幾種:事務(wù)一致 性服務(wù)acid(tool:jta/jts)、并發(fā)加鎖服務(wù)concurrent&&lock、池化管理服務(wù)cache、訪問控制服務(wù)(tool:jaas)、流程控制服務(wù)workflow、動態(tài)實現(xiàn)服務(wù)IOC,串行化消息服務(wù)(tool:jms)、負(fù)載平衡服務(wù)blance等。如果我們不采用重量級應(yīng)用服務(wù)器(如weblogic,websphere,jboss等)及重量級組件(EJB),我們必須自己實現(xiàn)其中一些服務(wù)。雖然我們大多情況下,不需要所有這些服務(wù),但實現(xiàn)起來卻非易事。幸運的是我們有大量的開源實現(xiàn)代碼,但采用開源代碼卻常常是件不輕松的事。

  隨著xml作為結(jié)構(gòu)化信息傳輸和存儲地位日漸重要,一些xml文檔操作工具(DOM,Digester,SAX等)的使用愈發(fā)重要,而隨著xml schema的java binding工具(jaxb,xmlbean等)工具的成熟,采用xml schema來設(shè)計xml文檔格式,然后采用java binding來生成java bean 會成為主要編程模式,而這又進(jìn)一步使數(shù)據(jù)中心向xml轉(zhuǎn)移,使在中小數(shù)據(jù)量上,愈發(fā)傾向于以xquery為查詢語言的xml數(shù)據(jù)庫。最近還有一個趨勢, microsoft,ibm等紛紛大量開發(fā)中間軟件如(microsoft office之infopath),可以直接從xml schema 生成 錄入頁面等非常實用的功能。還有web service 的廣泛應(yīng)用,都將對軟件的架構(gòu)有非常重大的影響。至于面向服務(wù)架構(gòu)(SOA)前景如何,三層次架構(gòu)什么時候走入歷史,現(xiàn)在還很難定論。

  aop的發(fā)展也會對軟件架構(gòu)有很深的影響,但在面向?qū)ο蠹軜?gòu)里,無論aspectJ還是jboss-aop抑是aspectWerks、 nanning都有其自身的嚴(yán)重問題:維護(hù)性很差,所以說它將很難走遠(yuǎn)。也許作為一個很好的思想,它將在web service里大展身手。

  rdf,owl作為w3c語義模型的標(biāo)志性的語言,也很難想象能在當(dāng)前業(yè)務(wù)架構(gòu)發(fā)揮太大影響。但如果真如它所聲稱那樣,廣泛地改變著信息的結(jié)構(gòu)。那么對軟件架構(gòu)也會有深遠(yuǎn)影響。

  Java開發(fā)中的技巧

  Eclipse中最常用的快捷鍵:

  Ctrl+L Go to Line

  F5 Step Into

  Ctrl+H Open Search Dialog

  Ctrl+Shift+K Find Previous

  Ctrl+F11 Run

  Ctrl+Shift+ Remove Block Comment

  F11 Debug

  Ctrl+Shift+/ Add Block Comment

  Ctrl+K Find Next

  F8 Resume (during Debug)

  Ctrl+O Quick Outline

  Alt+Shift+R Rename (Refactoring)

  F3 Open Declaration

  Ctrl+R Run to Line

  Ctrl+/ Toggle Comment

  Ctrl+Shift+O Organize Imports

  F6 Step Over

  Ctrl+Shift+F Format

  Ctrl+Shift+G References in Workspace

【Java架構(gòu)設(shè)計和開發(fā)中的小技巧】相關(guān)文章:

Java多線程的開發(fā)技巧10-16

網(wǎng)頁設(shè)計中的小技巧08-04

設(shè)計中配色的小技巧10-19

JAVA開發(fā)規(guī)范及其技巧介紹09-17

APP中圖標(biāo)設(shè)計的小技巧10-01

Java中基于Aspectwerkz的AOP開發(fā)06-07

在excel中的復(fù)制和移動的小技巧05-29

學(xué)好Java語言的小技巧09-10

網(wǎng)頁設(shè)計中優(yōu)化圖片的小技巧09-02