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

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

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

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      37 Posts :: 64 Stories :: 21 Comments :: 0 Trackbacks

     框架(Framework)是整個(gè)或部分系統(tǒng)的可重用設(shè)計(jì),表現(xiàn)為一組抽象構(gòu)件及構(gòu)件實(shí)例間交互的方法;另一種定義認(rèn)為,框架是可被應(yīng)用開發(fā)者定制的應(yīng)用骨架。前者是從應(yīng)用方面而后者是從目的方面給出的定義。

      可以說,一個(gè)框架是一個(gè)可復(fù)用的設(shè)計(jì)構(gòu)件,它規(guī)定了應(yīng)用的體系結(jié)構(gòu),闡明了整個(gè)設(shè)計(jì)、協(xié)作構(gòu)件之間的依賴關(guān)系、責(zé)任分配和控制流程,表現(xiàn)為一組抽象類以及其實(shí)例之間協(xié)作的方法,它為構(gòu)件復(fù)用提供了上下文(Context)關(guān)系。因此構(gòu)件庫的大規(guī)模重用也需要框架。

      構(gòu)件領(lǐng)域框架方法在很大程度上借鑒了硬件技術(shù)發(fā)展的成就,它是構(gòu)件技術(shù)、軟件體系結(jié)構(gòu)研究和應(yīng)用軟件開發(fā)三者發(fā)展結(jié)合的產(chǎn)物。在很多情況下,框架通常以構(gòu)件庫的形式出現(xiàn),但構(gòu)件庫只是框架的一個(gè)重要部分。框架的關(guān)鍵還在于框架內(nèi)對(duì)象間的交互模式和控制流模式。

      框架比構(gòu)件可定制性強(qiáng)。在某種程度上,將構(gòu)件和框架看成兩個(gè)不同但彼此協(xié)作的技術(shù)或許更好。框架為構(gòu)件提供重用的環(huán)境,為構(gòu)件處理錯(cuò)誤、交換數(shù)據(jù)及激活操作提供了標(biāo)準(zhǔn)的方法。

      應(yīng)用框架的概念也很簡單。它并不是包含構(gòu)件應(yīng)用程序的 小片程序,而是實(shí)現(xiàn)了某應(yīng)用領(lǐng)域通用完備功能(除去特殊應(yīng)用的部分)的底層服務(wù)。使用這種框架的編程人員可以在一個(gè)通用功能已經(jīng)實(shí)現(xiàn)的基礎(chǔ)上開始具體的系 統(tǒng)開發(fā)。框架提供了所有應(yīng)用期望的默認(rèn)行為的類集合。具體的應(yīng)用通過重寫子類(該子類屬于框架的默認(rèn)行為)或組裝對(duì)象來支持應(yīng)用專用的行為。

      應(yīng)用框架強(qiáng)調(diào)的是軟件的設(shè)計(jì)重用性和系統(tǒng)的可擴(kuò)充性,以縮短大型應(yīng)用軟件系統(tǒng)的開發(fā)周期,提高開發(fā)質(zhì)量。與傳統(tǒng)的基于類庫的面向?qū)ο笾赜眉夹g(shù)比較,應(yīng)用框架更注重于面向?qū)I(yè)領(lǐng)域的軟件重用。應(yīng)用框架具有領(lǐng)域相關(guān)性,構(gòu)件根據(jù)框架進(jìn)行復(fù)合而生成可運(yùn)行的系統(tǒng)。框架的粒度越大,其中包含的領(lǐng)域知識(shí)就更加完整。

      框架,即framework.其實(shí)就是某種應(yīng)用的半成品,就是一組組件,供你選用完成你自己的系統(tǒng)。簡單說就是使用別人搭好的舞臺(tái),你來做表演。而且,框架一般是成熟的,不斷升級(jí)的軟件。

      框架的概念最早起源于Smalltalk環(huán)境,其中最著名的框架是Smalltalk 80的用戶界面框架MVC(Model -View-Controller)。隨著用戶界面框架Interviews [Linton 89]和ET++ [Weinand 89] 的開發(fā)和發(fā)布,框架研究越來越受到研究人員的重視。雖然框架研究最初起源于用戶界面領(lǐng)域,但它還被成功地應(yīng)用到其他領(lǐng)域中,如操作系統(tǒng)[Russo 90]、火警系統(tǒng) [Molin 96a,Molin 96b] 等。Taligent公司于1992年成立后,框架研究受到了廣泛的重視。該公司計(jì)劃基于框架來開發(fā)一個(gè)完整的面向?qū)ο蟛僮飨到y(tǒng)。另外,該公司還發(fā)布了一 套支持快速應(yīng)用開發(fā)的工具集CommonPoint,其中包括了上百個(gè)面向?qū)ο罂蚣?[Andert 94,Cotter 95].框架目前還沒有統(tǒng)一的定義,其中Ralph Johnson所給出的定義基本上為大多數(shù)研究人員所接受:一個(gè)框架是一個(gè)可復(fù)用設(shè)計(jì),它是由一組抽象類及其實(shí)例間協(xié)作關(guān)系來表達(dá)的 [Johnson 98].這個(gè)定義是從框架內(nèi)涵的角度來定義框架的,當(dāng)然也可以從框架用途的角度來給出框架的定義:一個(gè)框架是在一個(gè)給定的問題領(lǐng)域內(nèi),一個(gè)應(yīng)用程序的一部分設(shè)計(jì)與實(shí)現(xiàn)[Bosch 97].從以上兩個(gè)定義可以看出,框架是對(duì)特定應(yīng)用領(lǐng)域中的應(yīng)用系統(tǒng)的部分設(shè)計(jì)和實(shí)現(xiàn),它定義了一類應(yīng)用系統(tǒng)(或子系統(tǒng))的整體結(jié)構(gòu)。框架將應(yīng)用系統(tǒng)劃分為類和對(duì)象,定義類和對(duì)象的責(zé)任,類和對(duì)象如何互相協(xié)作,以及對(duì)象之間的控制線程。這些共有的設(shè)計(jì)因素由框架預(yù)先定義,應(yīng)用開發(fā)人員只須關(guān)注于特定的應(yīng)用系統(tǒng)特有部分。框架刻畫了其應(yīng)用領(lǐng)域所共有的設(shè)計(jì)決策,所以說框架著重于設(shè)計(jì)復(fù)用,盡管框架中可能包含用某種程序設(shè)計(jì)語言實(shí)現(xiàn)的具體類。

      一個(gè)基于框架開發(fā)的應(yīng)用系統(tǒng)包含一個(gè)或多個(gè)框架,與框架相關(guān)的構(gòu)件類,以及與應(yīng)用系統(tǒng)相關(guān)的功能擴(kuò)展。與應(yīng)用系統(tǒng)相關(guān)的擴(kuò)展包括與應(yīng)用系統(tǒng)相關(guān)的類和對(duì)象。應(yīng)用系統(tǒng)可能僅僅復(fù)用了面向?qū)ο罂蚣艿囊徊糠郑蛘哒f,它可能需要對(duì)框架進(jìn)行一些適應(yīng)性修改,以滿足系統(tǒng)需求。

      面向?qū)ο蟮目蚣茏鳛橐环N可復(fù)用的軟件,在基于框架的軟件開發(fā)過程中會(huì)涉及到框架的開發(fā)和利用兩個(gè)方面的工作。框架的開發(fā)階段在于產(chǎn)生領(lǐng)域中可復(fù)用的設(shè)計(jì)。 該階段的主要結(jié)果是框架以及與框架相關(guān)的構(gòu)件類。該階段的一個(gè)重要活動(dòng)是框架的演變和維護(hù)。象所有軟件一樣,框架也易于變化。產(chǎn)生變化的原因很多,如應(yīng)用 出錯(cuò),業(yè)務(wù)領(lǐng)域變化,等等。

      不論是哪一種技術(shù),最終都是為業(yè)務(wù)發(fā)展而服務(wù)的。從業(yè)務(wù)的角度來講。首先,框架的是為了企業(yè)的業(yè)務(wù)發(fā)展和戰(zhàn)略規(guī)劃而服務(wù)的,他服從于企業(yè)的愿景 (vision);其次,框架最重要的目標(biāo)是提高企業(yè)的競爭能力,包括降低成本、提高質(zhì)量、改善客戶滿意程度,控制進(jìn)度等方面。最后,框架實(shí)現(xiàn)這一目標(biāo)的 方式是進(jìn)行有效的知識(shí)積累。軟件開發(fā)是一種知識(shí)活動(dòng),因此知識(shí)的聚集和積累是至關(guān)重要的。框架能夠采用一種結(jié)構(gòu)化的方式對(duì)某個(gè)特定的業(yè)務(wù)領(lǐng)域進(jìn)行描述,也 就是將這個(gè)領(lǐng)域相關(guān)的技術(shù)以代碼、文檔、模型等方式固化下來。

      一、框架要解決的問題框架要解決的最重要的一個(gè)問題是技術(shù)整合的問題,在J2EE的 框架中,有著各種各樣的技術(shù),不同的軟件企業(yè)需要從J2EE中選擇不同的技術(shù),這就使得軟件企業(yè)最終的應(yīng)用依賴于這些技術(shù),技術(shù)自身的復(fù)雜性和技術(shù)的風(fēng)險(xiǎn) 性將會(huì)直接對(duì)應(yīng)用造成沖擊。而應(yīng)用是軟件企業(yè)的核心,是競爭力的關(guān)鍵所在,因此應(yīng)該將應(yīng)用自身的設(shè)計(jì)和具體的實(shí)現(xiàn)技術(shù)解耦。這樣,軟件企業(yè)的研發(fā)將集中在 應(yīng)用的設(shè)計(jì)上,而不是具體的技術(shù)實(shí)現(xiàn),技術(shù)實(shí)現(xiàn)是應(yīng)用的底層支撐,它不應(yīng)該直接對(duì)應(yīng)用產(chǎn)生影響。

      要理解這一點(diǎn),我們來舉一些例子:一個(gè)做視頻流應(yīng)用的軟件企業(yè),他為電廣行業(yè)提供整體的解決方案。他的優(yōu)勢在于將各種各樣的視頻硬件、服務(wù)器、和管理結(jié)合起來,因此他扮演的是一個(gè)集成商的 角色。因此他的核心價(jià)值在于使用軟件技術(shù)將不同的硬件整合起來,并在硬件的整合層面上提供一個(gè)統(tǒng)一的管理平臺(tái)。所以他的精力應(yīng)該放在解決兩個(gè)問題:如何找到一種方法,將不同的硬件整合起來,注意,這里的整合并不是技術(shù)整合,而是一種思路上的整合。首先要考慮的絕對(duì)不是要使用什么技術(shù),而是這些硬件需 要提供哪些服務(wù),需要以什么樣的方式進(jìn)行管理。因此,這時(shí)候做的事情實(shí)際上是對(duì)領(lǐng)域進(jìn)行建模。例如,我們定義任何一種硬件都需要提供兩種能力,一種是統(tǒng)一 的管理接口,用于對(duì)所有硬件統(tǒng)一管理;另一種是服務(wù)接口,系統(tǒng)平臺(tái)可以查詢硬件所能夠提供的服務(wù),并調(diào)用這些服務(wù)。所以,設(shè)計(jì)的規(guī)范將會(huì)針對(duì)兩種能力進(jìn) 行。

      另一個(gè)問題是如何描述這個(gè)管理系統(tǒng)的規(guī)范。你需要描述各種管理活動(dòng),以及管理中所涉及的不同實(shí)體。因?yàn)楣芾硐到y(tǒng)是針對(duì)硬件的管理,所以它是構(gòu)架在硬件整合平臺(tái)之上的。

      在完成業(yè)務(wù)層面的設(shè)計(jì)之后,我們?cè)賮砜纯淳唧w的技術(shù)實(shí)現(xiàn)。光有規(guī)范和設(shè)計(jì)是不夠的,我們還需要選擇一個(gè)優(yōu)秀的技術(shù)。由于是對(duì)不同硬件的整合,我們想到采用Java提供的JMX技術(shù)。JMX技術(shù)適合用來進(jìn)行系統(tǒng)整合,它定義了一個(gè)通用的規(guī)范,并給出了遠(yuǎn)程管理端口的一些默認(rèn)實(shí)現(xiàn)。JMX已經(jīng)經(jīng)過了實(shí)踐的檢驗(yàn),不少的應(yīng)用服務(wù)器都采用了以JMX為基礎(chǔ)的結(jié)構(gòu),例如有名的JBoss.JMX已經(jīng)是一個(gè)很好的開始了,但是我們還需要在JMX的基礎(chǔ)上再做一些工作。

      二、什么要用框架?

      因?yàn)檐浖到y(tǒng)發(fā)展到今天已經(jīng)很復(fù)雜了,特別是服務(wù)器端軟件,設(shè)計(jì)到的知識(shí),內(nèi)容,問題太多。在某些方面使用別人成熟的框架,就相當(dāng)于讓別人幫你完成一些基 礎(chǔ)工作,你只需要集中精力完成系統(tǒng)的業(yè)務(wù)邏輯設(shè)計(jì)。而且框架一般是成熟,穩(wěn)健的,他可以處理系統(tǒng)很多細(xì)節(jié)問題,比如,事物處理,安全性,數(shù)據(jù)流控制等問 題。還有框架一般都經(jīng)過很多人使用,所以結(jié)構(gòu)很好,所以擴(kuò)展性也很好,而且它是不斷升級(jí)的,你可以直接享受別人升級(jí)代碼帶來的好處。

      框架一般處在低層應(yīng)用平臺(tái)(如J2EE)和高層業(yè)務(wù)邏輯之間的中間層。

      軟件為什么要分層?

      為了實(shí)現(xiàn)“高內(nèi)聚、低耦合”。把問題劃分開來各個(gè)解決,易于控制,易于延展,易于分配資源…總之好處很多啦:)。

     

    本文來自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/whhpaccp2008/archive/2009/09/21/4576616.aspx

    posted on 2009-09-22 10:45 xiachang88 閱讀(185) 評(píng)論(0)  編輯  收藏

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 久久精品国产亚洲av高清漫画 | **一级毛片免费完整视| 亚洲国产成人手机在线观看| 亚洲AV成人精品网站在线播放| 亚洲精品国产精品国自产观看| 成人免费在线视频| 久草在视频免费福利| 少妇太爽了在线观看免费视频| 久久久精品视频免费观看| 午夜在线亚洲男人午在线| 99热亚洲色精品国产88| 91大神亚洲影视在线| 亚洲国产精品乱码一区二区 | 免费精品国自产拍在线播放| 亚洲欧美日韩国产成人| 亚洲人成电影青青在线播放| 一区二区三区亚洲| 亚洲AV本道一区二区三区四区| 亚洲中文字幕在线乱码| 亚洲综合色视频在线观看| 亚洲国产成人久久综合一区77| 日本媚薬痉挛在线观看免费| 四虎在线免费播放| 女人18一级毛片免费观看| 成年女人午夜毛片免费看| 国产精品视频免费一区二区| 91在线视频免费看| 日韩欧美亚洲国产精品字幕久久久| 亚洲五月综合网色九月色| 亚洲一区免费视频| 亚洲一区二区三区深夜天堂| 亚洲伊人久久精品| 亚洲人成www在线播放| 国产精品亚洲一区二区麻豆| 亚洲色成人四虎在线观看| 亚洲heyzo专区无码综合| 看免费毛片天天看| 国产精品无码永久免费888| 91免费福利视频| 免费人妻无码不卡中文字幕系| 99免费视频观看|