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

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

步入J2EE架構(gòu)和過程(2)

2019-11-18 16:16:22
字體:
供稿:網(wǎng)友

  4、 對象設(shè)計(jì)

在架構(gòu)規(guī)范的指導(dǎo)下,設(shè)計(jì)從技術(shù)上擴(kuò)展和修改了分析結(jié)果。雖然分析階段的領(lǐng)域?qū)ο蠼?yīng)該與技術(shù)細(xì)節(jié)無關(guān),但是對象設(shè)計(jì)完全依賴于技術(shù)因素,包括平臺、語言的類型和架構(gòu)開發(fā)階段選擇的供應(yīng)商。分析時(shí),抬頭望著星星,但在設(shè)計(jì)階段,則要腳踏實(shí)地。理論上,為了維持業(yè)務(wù)對象的基本屬性和行為,除非絕對必要,不應(yīng)該破壞它們。

在架構(gòu)結(jié)果的指導(dǎo)下,詳細(xì)設(shè)計(jì)工作應(yīng)該說明所有類的規(guī)格,包括必須實(shí)現(xiàn)的屬性、它們的詳細(xì)接口和偽代碼或操作的純文本描述。規(guī)格說明應(yīng)該足夠詳細(xì)使得和模型圖結(jié)合時(shí),它可以提供所有必須的編碼信息。在許多自動化軟件生產(chǎn)過程中,我們可以從面向?qū)ο髨D生成代碼框架。圖5和6 說明了對一些領(lǐng)域?qū)ο蟮母邔雍驮敿?xì)設(shè)計(jì)對象。注意樁(stub)和框架(skeleton)在圖中經(jīng)常是不可見的,因?yàn)樗鼈儗υO(shè)計(jì)人員和編程員來說是透明的。我將它們包括在圖6中以說明EJB的基礎(chǔ)部分。

步入J2EE架構(gòu)和過程(2)


圖6 對象設(shè)計(jì)模型:訂單EJB詳細(xì)設(shè)計(jì)

在完成了詳細(xì)對象設(shè)計(jì)后,還需要完成領(lǐng)域?qū)ο蟮膶ο?關(guān)系映射。原因是雖然面向?qū)ο蠓椒▽W(xué)現(xiàn)在非常流行,但是大多數(shù)流行且成熟的持續(xù)性存儲卻是關(guān)系型的。另外,在許多情況下,客戶的IT基礎(chǔ)設(shè)施已經(jīng)反映了對商業(yè)RDBMS供應(yīng)商的投資和偏愛。所以,將領(lǐng)域?qū)ο筠D(zhuǎn)換成關(guān)系模型或數(shù)據(jù)庫表是非常重要的。雖然有許多容器管理的持續(xù)性工具,但它們不能取代好的關(guān)系數(shù)據(jù)庫設(shè)計(jì)。

5、 實(shí)現(xiàn)

在良好的架構(gòu)和詳細(xì)設(shè)計(jì)條件下,實(shí)現(xiàn)應(yīng)該是一個(gè)明確的任務(wù)。另外,因?yàn)槲覀冊O(shè)計(jì)和實(shí)現(xiàn)架構(gòu)原型階段的縱向聯(lián)合部分,所以實(shí)現(xiàn)階段應(yīng)該更沒有什么值得驚訝的。在許多組織中,開發(fā)者經(jīng)常過早地到達(dá)實(shí)現(xiàn)階段。尤其當(dāng)管理者盯著開發(fā)人員確保在編碼,而不是做他們認(rèn)為在浪費(fèi)公司時(shí)間的其他事情時(shí),這種情況變得更加嚴(yán)重。

結(jié)果,不再花數(shù)小時(shí)或數(shù)天繪出UML草圖,而是通常在發(fā)費(fèi)數(shù)周或數(shù)月編碼的同時(shí)測試自己的想法。由于在這種情況下,所有地架構(gòu)決定和設(shè)計(jì)都是在編碼階段做出來的,所以經(jīng)常過了數(shù)月后才發(fā)現(xiàn)開發(fā)的方向出錯(cuò)了。

6、 驗(yàn)證

驗(yàn)證包括測試驗(yàn)證系統(tǒng)按設(shè)計(jì)要求運(yùn)行并滿足需求。驗(yàn)證過程發(fā)生在整個(gè)開發(fā)生命周期的開發(fā)和產(chǎn)品環(huán)境中。單元測試、集成測試和用戶測試本身就是非常重要的主題。

7、 裝配和部署

構(gòu)件裝配和解決方案部署在J2EE開發(fā)中特別重要。開發(fā)和產(chǎn)品環(huán)境可能非常不同。如果EJB在系統(tǒng)中,你需要使用供應(yīng)商特定的工具得到容器自動生成的類,因?yàn)椋缥乙郧爸赋龅模琖eb和應(yīng)用程序構(gòu)件配置對不同的供應(yīng)商來說是不同的。你也必須考慮要部署的系統(tǒng)是否含有供應(yīng)商特定代碼實(shí)現(xiàn)。在可擴(kuò)展架構(gòu)中,系統(tǒng)結(jié)構(gòu)應(yīng)該是穩(wěn)定的但也應(yīng)該在不影響整個(gè)系統(tǒng)的條件下支持新或老構(gòu)件的增量部署。

8、 運(yùn)行和維護(hù)

在最后階段,應(yīng)用程序到了用戶手中,你必須給他們提供培訓(xùn)和文檔。用戶會發(fā)現(xiàn)錯(cuò)誤并可能要求新特性。你必須適當(dāng)?shù)馗淖児芾磉^程來處理這些情況。你不必為了部署一個(gè)新構(gòu)件或取代老構(gòu)件而關(guān)閉一個(gè)正在運(yùn)行的系統(tǒng)。

架構(gòu)開發(fā)過程

知道了必須做出許多架構(gòu)決定,因此我們必須為架構(gòu)開發(fā)描繪一個(gè)過程。對于一個(gè)企業(yè)來說通常有許多應(yīng)用項(xiàng)目,它們中的一些可能跨越數(shù)年,結(jié)果是系統(tǒng)演化包含許多周期。在你的領(lǐng)域里存在著許多跨越多個(gè)項(xiàng)目的通用需求。你應(yīng)該不費(fèi)力地在它的生命周期或其他項(xiàng)目中使用以前項(xiàng)目周期的可擴(kuò)展且可重用的架構(gòu)。為一系列軟件應(yīng)用提供同屬結(jié)構(gòu)和行為的通用框架和可重用軟件架構(gòu)是非常需要的。

如果是第一個(gè)J2EE項(xiàng)目,架構(gòu)必須做原型、測試、度量、分析并在迭代中進(jìn)行推敲。藍(lán)圖提供了許多好的設(shè)計(jì)指導(dǎo)和實(shí)踐,寵物店示例程序可以作為一個(gè)很好的參考架構(gòu)。最有效地快速、高質(zhì)量發(fā)布好的解決方案的方法是接受和擴(kuò)展藍(lán)圖參考架構(gòu)并插入你自己的業(yè)務(wù)構(gòu)件。你最后要做的就是改造車輪。

接受一個(gè)參考架構(gòu)

就我的理解,寵物店架構(gòu)的精華是模型-視圖-控制和命令模式。你可以將這些模式應(yīng)用到以Web為中心和以EJB為中心的系統(tǒng)中。對于每個(gè)領(lǐng)域?qū)ο螅晥D用嵌套的jsp表示。控制器處理相關(guān)的業(yè)務(wù)事件,領(lǐng)域?qū)ο蠓庋b業(yè)務(wù)邏輯、事物和安全。我們使用門戶servlet作為中心控制器接受和截獲所有用戶的動作。它將業(yè)務(wù)事件分發(fā)給特定的調(diào)用領(lǐng)域?qū)ο蟾淖兂掷m(xù)狀態(tài)的領(lǐng)域?qū)ο罂刂破鳌R揽渴录幚斫Y(jié)果,控制器選擇下一個(gè)要展現(xiàn)的視圖。下面是我們可以修改并在大多數(shù)J2EE應(yīng)用程序中使用的主要構(gòu)件:

a、 MainServlet:門戶構(gòu)件,Web容器和框架之間的接口

b、 ModelUpdateListener:獲得模型更新事件對象的接口

c、 ModelUpdateNotifier:當(dāng)更新模型事件發(fā)生時(shí)通知偵聽器

d、 RequestPRocessor:處理所有從MainServlet來的請求。

e、 RequestHandler:即插即用請求處理構(gòu)件接口

f、 RequestHandlerMapping:包含請求處理映射規(guī)則

g、 RequestToEventTranslator:中心請求處理器根據(jù)請求處理映射規(guī)則代理即插即用請求處理構(gòu)件的請求。將http請求轉(zhuǎn)換為業(yè)務(wù)事件

h、 EstoreEvent:業(yè)務(wù)事件

i、 ShoppingClientControllerWebImpl:代理EJB層門戶控制器

j、 ScreenflowManager:控制屏幕流,選擇視圖

k、 ModelUpdateManager:EJB層模型更新管理器,通知什么模型由于事件發(fā)生了改變

l、 ShoppingClientControllerEJB:EJB層門戶,為EJB客戶提供遠(yuǎn)程服務(wù)

m、 StateMachine:中心事件處理器,根據(jù)狀態(tài)處理映射規(guī)則代理即插即用處理構(gòu)件的事件處理

n、 StateHandler:EJB層狀態(tài)處理接口

o、 StateHandlerMapping:包含狀態(tài)處理映射規(guī)則

擴(kuò)展參考架構(gòu)

雖然藍(lán)圖示例程序是一個(gè)好的起點(diǎn),但應(yīng)該根據(jù)每個(gè)項(xiàng)目或領(lǐng)域修改它。設(shè)計(jì)模式是可重用的微體系結(jié)構(gòu),可以使用它擴(kuò)展參考架構(gòu)。提供了一組有用的J2EE模式目錄的藍(lán)圖和23個(gè)"四人幫"模式都是非常不錯(cuò)的資源。例如,如果想擴(kuò)展參考架構(gòu)支持工作流管理,你可以在部署或運(yùn)行時(shí)動態(tài)地在中心控制器注冊事件處理器。中心控制器會詢問每個(gè)注冊的事件處理器直到一個(gè)處理器返回消息表明到了命令鏈的末端。

插入你的業(yè)務(wù)構(gòu)件

J2EE技術(shù)對每個(gè)人都是一樣的,但是不同的領(lǐng)域,我們要解決的問題是不同的。一旦建立了一個(gè)基本的J2EE框架,必須實(shí)現(xiàn)一些用例來說明架構(gòu)確實(shí)可以為你的領(lǐng)域服務(wù)。可以通過選用捕獲系統(tǒng)關(guān)鍵功能的場景來實(shí)現(xiàn),這些場景經(jīng)常使用來展現(xiàn)關(guān)鍵的技術(shù)風(fēng)險(xiǎn)。從領(lǐng)域分析模型入手,可以象我們在圖5和6中那樣將領(lǐng)域?qū)ο笥成涑筛邔雍偷蛯釉O(shè)計(jì)模型。實(shí)現(xiàn)低層設(shè)計(jì)模型并測試是否真正在工作。如果每件事都按計(jì)劃運(yùn)行,那么重新評估風(fēng)險(xiǎn)開始下一個(gè)迭代,擴(kuò)展要考慮的場景并選擇更多的場景擴(kuò)展架構(gòu)的覆蓋范圍。經(jīng)過幾次迭代后,原始的架構(gòu)原型應(yīng)該變得穩(wěn)定。識別要購買的構(gòu)件,要保留的遺留系統(tǒng)和怎樣將它們對接。下一步是軟件設(shè)計(jì),你可以使用設(shè)計(jì)指導(dǎo)中規(guī)定好的類似方法和過程繼續(xù)開發(fā)。

一步一步

我們使用一個(gè)過程來將一個(gè)復(fù)雜問題分解為較小的幾個(gè)問題,這使得我們可以更容易的理解和解決它們。在本文中,我們將J2EE開發(fā)分解為八個(gè)步驟,主要集中在架構(gòu)和設(shè)計(jì)。我已經(jīng)闡述了重要的架構(gòu)并為架構(gòu)決定提供了一個(gè)過程。我也討論了J2EE架構(gòu)師的角色和可交付產(chǎn)品。

學(xué)習(xí)使用這些步驟開發(fā)J2EE解決方案就象學(xué)習(xí)跳舞的步驟一樣。首先需要自覺并持之以恒地練習(xí)基本步驟。但是,一旦你對它們相當(dāng)熟悉后,應(yīng)該將它們放在一起并將注意力更多地集中在規(guī)模、速度、流和特定上下文中每一步的節(jié)奏。但永遠(yuǎn)不要讓一個(gè)過程限制了創(chuàng)造性。而應(yīng)該接受和擴(kuò)展過程以滿足自己特殊需要。記住,最終目的是提供滿足客戶需求的完整的J2EE解決方案。

(出處:http://m.survivalescaperooms.com)



發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 稻城县| 伊宁市| 云林县| 鲁甸县| 拉孜县| 闻喜县| 确山县| 中卫市| 获嘉县| 阿合奇县| 仙居县| 来安县| 江津市| 建瓯市| 龙里县| 洪洞县| 德阳市| 东阳市| 吉木萨尔县| 尉犁县| 霸州市| 黑龙江省| 丰原市| 营口市| 皮山县| 镇巴县| 抚顺市| 饶阳县| 金阳县| 海口市| 界首市| 滨州市| 大冶市| 元氏县| 土默特左旗| 太康县| 拉萨市| 宜宾县| 绩溪县| 论坛| 扎鲁特旗|