[編輯本段](框,讀kuàng,不讀kuāng。)
由梁和柱組成的能承受垂直和水平荷載的結(jié)構(gòu)。主要用于工業(yè)與民">

首頁 > 專家說

問一個非常白癡的問題,框架是什么意思?

來源:新能源網(wǎng)
時間:2024-08-17 11:52:02
熱度:

問一個非常白癡的問題,框架是什么意思?【專家解說】:土木工程中的框架
[編輯本段](框,讀kuàng,不讀kuāng。)
由梁和柱組成的能承受垂直和水平荷載的結(jié)構(gòu)。主要用于工業(yè)與民

【專家解說】:土木工程中的框架 [編輯本段]  ?。?,讀kuàng,不讀kuāng。) 由梁和柱組成的能承受垂直和水平荷載的結(jié)構(gòu)。主要用于工業(yè)與民用建筑物的承重骨架,橋梁構(gòu)架或工程構(gòu)筑物。   一般指建筑工程中,由粱或尾架和柱聯(lián)結(jié)而成的結(jié)構(gòu)。由于我國古代家具自宋以后曾吸收古代大木構(gòu)制的作法,故傳統(tǒng)家具采用框檔、立柱結(jié)構(gòu)形式的即稱框架,并將此類結(jié)構(gòu)形式的家具稱之謂“框架式家具”。 軟件工程中的框架 [編輯本段] 在設(shè)計模式中,Gamma等人為框架給出了一個定義:“框架就是一組協(xié)同工作的類,它們?yōu)樘囟愋偷能浖?gòu)筑了一個可重用的設(shè)計?!盵Gamma 94,p.26] 框架是針對特定的問題領(lǐng)域的,例如,struts是一個針對Web開發(fā)的框架。 框架包括了一組的抽象概念。這些抽象概念來源于問題領(lǐng)域。例如,struts是基于MVC模式進行設(shè)計的,所以它必須為model、view、control建立抽象概念。 框架使得這些抽象概念相互協(xié)作,并提供了一種擴展的形式,以實現(xiàn)重用。這是框架的具體工作。框架在抽象概念上進行工作,定義抽象概念之間的協(xié)作方式??蚣芎推胀ㄜ浖蚴穷悗斓膮^(qū)別就在于,用戶通過擴展框架來重用該框架。這些擴展點的設(shè)計稱為框架設(shè)計的核心。例如,在struts1.0中,采用的是類繼承的擴展方式(對Action進行擴展)。 框架的定義 在我們的案例中,我們將框架定義如下: 框架為支持企業(yè)的戰(zhàn)略和業(yè)務(wù)開發(fā)的軟件,它最重要的職責(zé)在企業(yè)發(fā)展的過程中以一種有效的方式來積累知識資源,并將之用于提高企業(yè)的核心競爭能力。 不論是哪一種技術(shù),最終都是為業(yè)務(wù)發(fā)展而服務(wù)的。因此,我們定義的框架概念主要是從業(yè)務(wù)的角度來描述。首先,框架的是為了企業(yè)的業(yè)務(wù)發(fā)展和戰(zhàn)略規(guī)劃而服務(wù)的,他服從于企業(yè)的愿景(vision);其次,框架最重要的目標是提高企業(yè)的競爭能力,包括降低成本、提高質(zhì)量、改善客戶滿意程度,控制進度等方面。最后,框架實現(xiàn)這一目標的方式是進行有效的知識積累。軟件開發(fā)是一種知識活動,因此知識的聚集和積累是至關(guān)重要的。框架能夠采用一種結(jié)構(gòu)化的方式對某個特定的業(yè)務(wù)領(lǐng)域進行描述,也就是將這個領(lǐng)域相關(guān)的技術(shù)以代碼、文檔、模型等方式固化下來。 框架要解決的問題 框架要解決的最重要的一個問題是技術(shù)整合的問題,在J2EE的框架中,有著各種各樣的技術(shù),不同的軟件企業(yè)需要從J2EE中選擇不同的技術(shù),這就使得軟件企業(yè)最終的應(yīng)用依賴于這些技術(shù),技術(shù)自身的復(fù)雜性和技術(shù)的風(fēng)險性將會直接對應(yīng)用造成沖擊。而應(yīng)用是軟件企業(yè)的核心,是競爭力的關(guān)鍵所在,因此應(yīng)該將應(yīng)用自身的設(shè)計和具體的實現(xiàn)技術(shù)解耦。這樣,軟件企業(yè)的研發(fā)將集中在應(yīng)用的設(shè)計上,而不是具體的技術(shù)實現(xiàn),技術(shù)實現(xiàn)是應(yīng)用的底層支撐,它不應(yīng)該直接對應(yīng)用產(chǎn)生影響。 要理解這一點,我們來舉一些例子: 一個做視頻流應(yīng)用的軟件企業(yè),他為電廣行業(yè)提供整體的解決方案。他的優(yōu)勢在于將各種各樣的視頻硬件、服務(wù)器、和管理結(jié)合起來,因此他扮演的是一個集成商的角色。因此他的核心價值在于使用軟件技術(shù)將不同的硬件整合起來,并在硬件的整合層面上提供一個統(tǒng)一的管理平臺。所以他的精力應(yīng)該放在解決兩個問題: 如何找到一種方法,將不同的硬件整合起來,注意,這里的整合并不是技術(shù)整合,而是一種思路上的整合。首先要考慮的絕對不是要使用什么技術(shù),而是這些硬件需要提供哪些服務(wù),需要以什么樣的方式進行管理。因此,這時候做的事情實際上是對領(lǐng)域進行建模。例如,我們定義任何一種硬件都需要提供兩種能力,一種是統(tǒng)一的管理接口,用于對所有硬件統(tǒng)一管理;另一種是服務(wù)接口,系統(tǒng)平臺可以查詢硬件所能夠提供的服務(wù),并調(diào)用這些服務(wù)。所以,設(shè)計的規(guī)范將會針對兩種能力進行。 另一個問題是如何描述這個管理系統(tǒng)的規(guī)范。你需要描述各種管理活動,以及管理中所涉及的不同實體。因為管理系統(tǒng)是針對硬件的管理,所以它是構(gòu)架在硬件整合平臺之上的。 以下就是我們設(shè)想的系統(tǒng)總圖。其中框架的定位在于硬件整合平臺和管理系統(tǒng)的下層。最底層的技術(shù)可能是第三方提供或自主研發(fā)的。但這些都沒有關(guān)系。 在完成業(yè)務(wù)層面的設(shè)計之后,我們再來看看具體的技術(shù)實現(xiàn)。光有規(guī)范和設(shè)計是不夠的,我們還需要選擇一個優(yōu)秀的技術(shù)。由于是對不同硬件的整合,我們想到采用Java提供的JMX技術(shù)。JMX技術(shù)適合用來進行系統(tǒng)整合,它定義了一個通用的規(guī)范,并給出了遠程管理端口的一些默認實現(xiàn)。JMX已經(jīng)經(jīng)過了實踐的檢驗,不少的應(yīng)用服務(wù)器都采用了以JMX為基礎(chǔ)的結(jié)構(gòu),例如有名的JBoss。JMX已經(jīng)是一個很好的開始了,但是我們還需要在JMX的基礎(chǔ)上再做一些工作。 網(wǎng)頁設(shè)計中的框架 [編輯本段] 框架是網(wǎng)頁中經(jīng)常使用的頁面設(shè)計方式,框架的作用就是把網(wǎng)頁在一個瀏覽器窗口下分割成幾個不同的區(qū)域,實現(xiàn)在一個瀏覽器窗口中顯示多個HTML頁面。使用框架可以非常方便的完成導(dǎo)航工作,讓網(wǎng)站的結(jié)構(gòu)更加清晰,而且各個框架之間決不存在干擾問題。利用框架最大的特點就是使網(wǎng)站的風(fēng)格一致。通常把一個網(wǎng)站中頁面相同的部分單獨制作成一個頁面,作為框架結(jié)構(gòu)的一個子框架的內(nèi)容給整個網(wǎng)站公用?! ?一個框架結(jié)構(gòu)有兩部分網(wǎng)頁文件構(gòu)成:   框架frame:框架是瀏覽器窗口中的一個區(qū)域,它可以顯示與瀏覽器窗口的其余部分中所顯示內(nèi)容無關(guān)的網(wǎng)頁文件。 框架集frameset:框架集也是一個網(wǎng)頁文件,它將一個窗口通過行和列的方式分割成多個框架,框架的多少根據(jù)具體有多少網(wǎng)頁來決定,每個框架中要顯示的就是不同的網(wǎng)頁文件。