<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    飛艷小屋

    程序--人生--哲學(xué)___________________歡迎艷兒的加入

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      52 Posts :: 175 Stories :: 107 Comments :: 0 Trackbacks

    架構(gòu)(Architecture)和框架(Framework)雜談

    經(jīng)常感覺很多人對于架構(gòu)和框架分得不是很清楚,隨便寫一點關(guān)于這方面的東西吧。如果以后對于這方面的認(rèn)識更加深刻的話,再補(bǔ)充好了。

    1. 架構(gòu)和框架的設(shè)計層次不同

    類似于硬件設(shè)計,軟件設(shè)計也分為不同的層次。典型的軟件設(shè)計層次如下圖:

    design-level.BMP

    在這個圖中我們可以看到,F(xiàn)ramework處于Micro-architectures和Application Level之間。Deisgn Patterns是Micro-architectures級的設(shè)計,F(xiàn)ramework由多個Design Pattern和其他微架構(gòu)設(shè)計元素形成。而Object&classes、Micro-architectures和Framework被稱為 Micro Level設(shè)計。就是說,從Objects&classes到Framework,還沒有發(fā)生質(zhì)變。

    對于Application Level到Global/Industry Level的設(shè)計來說,就都是Architecture的范疇了。從Application Level來說,它是由零到多個Framework組成的獨立的應(yīng)用程序,會考慮諸如UI之類的重要問題。System Level由多個應(yīng)用組成,每個應(yīng)用在整個系統(tǒng)中代表不同的角色,這些應(yīng)用共同組成一個系統(tǒng)工作環(huán)境。Enterprise Level又是由System Level組成,通常跨越整個企業(yè)(這里是廣義的企業(yè))中的多個組織機(jī)構(gòu)。Global/industry Level由多個企業(yè)通過Internet和商業(yè)市場組成一個相當(dāng)大范圍內(nèi)的系統(tǒng)應(yīng)用,B2B就是這樣的Global Level設(shè)計的應(yīng)用系統(tǒng)。

    顯然Framework和Architecture在這里的差別是巨大的,哪怕和Application Level相比。當(dāng)一個應(yīng)用中只使用了一個Framework時,我們可以把它叫做Architecture嗎?事實上,F(xiàn)ramework僅僅是 Architecture中的一個微不足道的部分。在Achitecture中,我們考慮技術(shù)視圖時,會選擇J2EE或.NET,然后才會考慮:是否要用 Spring、Hibernate?從這里可以看出,F(xiàn)ramework只是技術(shù)視圖的一個設(shè)計決策。

    2. 架構(gòu)和框架的Design Forces不同

    其實,僅僅上面的描述也應(yīng)該能夠讓大家清楚的認(rèn)識到Architecture和Framework的區(qū)別了。但我還想在另外的方面更進(jìn)一步說明。

    Design Forces我不知道怎么翻譯,只能解釋一下了:Design Forces指設(shè)計主要針對的問題、領(lǐng)域和能力。勉強(qiáng)可以翻譯成“設(shè)計針對”吧。

    Framework的Design Forces主要是功能性、復(fù)雜性和性能。從Framework的定位和設(shè)計層次來說,它主要目的是幫助開發(fā)人員完成公共的、系統(tǒng)的功能,這些功能在大多數(shù)應(yīng)用中都需要,差別在于多少而已。對于一個Framework,完成系統(tǒng)的功能,隱藏并盡量簡化這些系統(tǒng)功能的復(fù)雜性,同時提供可接受的性能,這就是它的設(shè)計目標(biāo)了。

    而對于Architecture,其最主要的Design Force就是變更。其次,所有可能的問題都是要在Architecture中考慮:復(fù)雜性、功能、性能、技術(shù)、所有非功能需要等等。。。

    3. OOP、AOP還是FOP(Framework oriented Programming)?!

    做Java有一個好處,就是各種框架技術(shù)層出不窮,使用方便。但這不見得就是好事情。感覺很多人非常專注于框架的使用和研究,對框架注意力甚至超過了對OO、Java、J2EE規(guī)范等基本的東西的注意力。倒是有些象當(dāng)初Windows下面,用VB、VC、Delphi,還是 CBuilder?似乎有些人把OOP、AOP變成了FOP。

    在我看來,框架這個東西,用用是可以的,研究就不必了;自己寫個框架也是可以的,但也不應(yīng)該停留在框架這個層次。不要在框架上浪費精力,把這個事情交給畢業(yè)生做好了。

    4. 慎用Framework!

    小標(biāo)題夸張一點,是為了提醒大家。一般情況下,使用Framework可以大大減少工作量,使開發(fā)變得容易。通常使用框架應(yīng)該是值得鼓勵的。但是也要注意:

      • 不要濫用Framework。不要在一個不是很大的項目中使用過多的Framework,不然維護(hù)會受到影響。
      • 盡量不要同時使用幾個功能上有交叉的Framework。這會使項目開發(fā)的管理更加復(fù)雜,同樣會導(dǎo)致維護(hù)問題。
      • 在Enterprise Level的應(yīng)用中使用Framework時,要對Framework進(jìn)行嚴(yán)格的評估,確保其Design Forces不和Enterprise Level的應(yīng)用沖突!Framework在設(shè)計時刻通常不會考慮到Enterprise Level的問題,你不能想當(dāng)然的認(rèn)為它一定可以適合你的Enterprise應(yīng)用!

      先寫這么多,以后再補(bǔ)充吧。

      posted on 2005-11-22 08:53 天外飛仙 閱讀(168) 評論(0)  編輯  收藏

      只有注冊用戶登錄后才能發(fā)表評論。


      網(wǎng)站導(dǎo)航:
       
      主站蜘蛛池模板: 免费无码作爱视频| av午夜福利一片免费看久久| 99热这里有免费国产精品| 国产综合精品久久亚洲| 四虎国产精品成人免费久久| 亚洲成aⅴ人片久青草影院| 精品国产亚洲AV麻豆| 午夜亚洲福利在线老司机| 一区二区三区视频免费| 亚洲最大AV网站在线观看| 久久久受www免费人成| 77777亚洲午夜久久多人| 国产成人精品无码免费看| 亚洲尹人九九大色香蕉网站| 久久精品国产免费观看三人同眠 | 久久乐国产精品亚洲综合| 免费亚洲视频在线观看| ZZIJZZIJ亚洲日本少妇JIZJIZ | 日本在线免费观看| 91在线亚洲精品专区| 69式互添免费视频| 亚洲中文字幕日本无线码| 日韩免费一级毛片| 青青操免费在线视频| 亚洲精品偷拍无码不卡av| 好吊妞998视频免费观看在线| 亚洲精品美女久久久久99| 四虎影视成人永久免费观看视频 | 可以免费观看一级毛片黄a| 男人扒开添女人下部免费视频| 免费国产黄线在线观看| 亚洲AV日韩AV无码污污网站| 亚洲中文字幕伊人久久无码| 最近免费字幕中文大全视频| 亚洲人成色777777精品| 亚洲中文字幕日产乱码高清app| 最新亚洲精品国偷自产在线| 久久国产成人亚洲精品影院| 1000部免费啪啪十八未年禁止观看 | a级大片免费观看| 91亚洲自偷手机在线观看|