国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

關于可擴展的web架構設計的探索-框架結構的描述文件

2019-11-17 06:17:31
字體:
來源:轉載
供稿:網友

    這兩天我一直在想,怎樣定義框架結構的描述文件。我從以下幾個方面考慮:

  1. 完整性。在框架的答應范圍內任何情況它都能夠描述。
  2. 語義性。所有的描述必須是唯一、明確。
  3. 一致性。所有的描述必須是統一,不可相互沖突。
  4. 可引用性。所有描述元素必須可達,必須易于訪問。
  5. 可維護性。描述文件可配置、可擴展、可再生。
  6. 可讀性。所有的描述必須是易于理解。

    現在我需要這樣的一個描述文件:描述框架網頁,也就是frame的網頁。 先前我分析了eclipse的插件描述文件。它是這樣定義的:

<?xml version="1.0" encoding="UTF-8"?><plugin   id="com.nidapeng.eclipse.plugin"   name="Welcome to Eclipse"   version="1.0"   
    plugin.xml中一共有四個主要的標簽:plugin,requires,runtime,extension。其中plugin標簽的屬性提供的是我們要開發的Welcome插件的基本信息,除了name,version,provider-name等,最重要的是id,我們通過它可以索引到此元素。requires標簽中所列出的是需要的插件,這里我們要用到Eclipse Workbench和SWT API,因此導入了org.eclipse.ui插件。 runtime標簽指明的是我們開發的插件所在JAR包的文件名。extension標簽是插件擴展點的信息。 org.eclipse.ui.views是Eclipse系統提供的觀察窗口擴展點,我們的例子是一個觀察窗口(View),這表明我們是要在 org.eclipse.ui.views擴展點上進一步開發。 extension中還包括category和view兩個標簽,并且在view的屬性中聲明了Welcome插件的類名。

    我以為我發現了寶貝,興奮了好一陣!你看,多么美妙的結構。包含了外部包的聲明、運行時的庫、擴展點的設置、視圖的定義。最最閃亮之處就是擴展點。這意味著所有的插件都可以具備容器的能力,插件可以插入另外一個插件里面,插件本身就是個可擴展的。

    當我著手建立這樣的java模型時候,我碰到難題了。我怎樣才能將插件視圖插入到框架視圖里呢?我怎樣才能實現框架與插件之間的通信,包括事件的傳遞。

    首先說明一下這個框架的具體的應用和所采用的技術。這個框架是個web應用,窗體可配置的,可能是上下一分為二,也可能是左右一分為二等等,并且窗體可嵌套的。窗體的每一區域具體的視圖也可配置的,可能是個導航條,也可能是個列表框。技術打算采用struts的架構,保留action、bean、view。它們可以幫助我們完成其中一些繁重的工作。所以容器治理只能是struts本身的ActionServlet容器或者它的子類。

    Struts是一個高度可配置、高度擴展性的MVC框架,我們幾乎可以用它開發任何能想到的用Java技術的Web應用。MVC模式的每一部分在StrUCts中都有相關對應部分。在struts里action是控制層,bean是模型層,view是視圖層。

    現在我們把框架需求整理一下,以便我們更好的分析和定義框架的描述文件。

  1. 窗體可配置
  2. 窗體可嵌套
  3. 視圖可配置
  4. 視圖可定義
  5. 建立在struts框架之上

    好了,現在知道我們需要做什么了。我們的描述文件里需要包括下列元素:

  1. 窗體描述
  2. 擴展點描述
  3. antion關聯

    這里沒有視圖描述,因為struts已經將action關聯了視圖。所以我們只需要治理action就行了。視圖的處理全部交給struts去做了。

    太累了,這里先放上初步的框架描述文件。以后等大腦清醒了,再闡述~

<?xml version="1.0" encoding="UTF-8"?>/*begin插件定義*/<plugin    id="com.useeasy.plugin"    name="Welcome to frame"    version="1.0"    provider-name="doJava">/*begin擴展區定義*/<frameset    rows="64,*"    desc="可擴展插件的web框架"    extension="com.useeasy.frame"><frame    id="com.useeasy.header"    scrolling="no"    noresize="true"    action="/headAction"    desc="第一個擴展區"</frame> <frame    id="com.useeasy.main    action="/listAction"    desc="第二個擴展區"></frame> </frameset> //定義兩個擴展區/*end擴展區定義</plugin>/*end插件定義*/



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平邑县| 抚松县| 元朗区| 宁武县| 佛学| 广元市| 新建县| 台东市| 临高县| 余干县| 精河县| 辽阳县| 洱源县| 延庆县| 紫金县| 新绛县| 防城港市| 拜泉县| 英山县| 牡丹江市| 辽阳市| 霸州市| 容城县| 桦南县| 义乌市| 青田县| 洛浦县| 南城县| 北票市| 余干县| 临高县| 关岭| 海兴县| 长阳| 万荣县| 盘山县| 区。| 长治县| 南和县| 弋阳县| 新龙县|