版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《JavaWeb應(yīng)用開(kāi)發(fā)》單元8某商城系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)了解系統(tǒng)總體設(shè)計(jì)的相關(guān)概念熟悉時(shí)序圖的作用和繪制熟悉功能模塊開(kāi)發(fā)的基本流程知識(shí)目標(biāo)能夠?qū)ι坛窍到y(tǒng)進(jìn)行整體設(shè)計(jì)能夠熟練使用時(shí)序圖表示組件間的時(shí)序關(guān)系能夠熟練使用JSP與Servlet技術(shù)進(jìn)行功能模塊開(kāi)發(fā)能力目標(biāo)培養(yǎng)學(xué)生誠(chéng)實(shí)守信、遵紀(jì)守法的精神,樹(shù)立正確的知識(shí)產(chǎn)權(quán)意識(shí)培養(yǎng)學(xué)生的團(tuán)隊(duì)合作精神和溝通能力培養(yǎng)學(xué)生不怕困難、勇于探索、堅(jiān)持不懈的敬業(yè)精神和吃苦耐勞的優(yōu)良作風(fēng)素質(zhì)目標(biāo)學(xué)習(xí)目標(biāo)商城系統(tǒng)的總體設(shè)計(jì)任務(wù)8.1任務(wù)描述和技術(shù)分析4技術(shù)分析任務(wù)描述在系統(tǒng)開(kāi)發(fā)的整個(gè)過(guò)程中,總體設(shè)計(jì)是系統(tǒng)實(shí)現(xiàn)的基礎(chǔ),這個(gè)環(huán)節(jié)是對(duì)系統(tǒng)總體功能架構(gòu)、技術(shù)架構(gòu)等宏觀布局進(jìn)行設(shè)計(jì),為功能模塊的設(shè)計(jì)與實(shí)現(xiàn)構(gòu)建基礎(chǔ)。本節(jié)會(huì)對(duì)商城系統(tǒng)的總體模塊進(jìn)行設(shè)計(jì)。在總體設(shè)計(jì)的過(guò)程中,需要對(duì)系統(tǒng)的功能結(jié)構(gòu)、技術(shù)結(jié)構(gòu)以及數(shù)據(jù)庫(kù)結(jié)構(gòu)進(jìn)行設(shè)計(jì)。功能結(jié)構(gòu)指出包含的功能模塊有哪些,模塊之間的關(guān)系是怎樣的。技術(shù)結(jié)構(gòu)指的是完成整體的功能需要用到的技術(shù)架構(gòu)。支撐知識(shí)—總體設(shè)計(jì)概念/01總體設(shè)計(jì)概念總體設(shè)計(jì)也稱(chēng)為概要設(shè)計(jì),是將軟件的功能需求轉(zhuǎn)化為所需要的體系結(jié)構(gòu)的過(guò)程,涉及決定系統(tǒng)的模塊結(jié)構(gòu)、模塊間的調(diào)用關(guān)系、模塊間傳遞的數(shù)據(jù)以及每個(gè)模塊的功能說(shuō)明??傮w設(shè)計(jì)詳細(xì)來(lái)說(shuō)包含多個(gè)關(guān)鍵內(nèi)容,這些關(guān)鍵內(nèi)容共同構(gòu)成了軟件系統(tǒng)的整體框架和設(shè)計(jì)藍(lán)圖。系統(tǒng)架構(gòu)設(shè)計(jì):涉及確定軟件系統(tǒng)的整體結(jié)構(gòu),包括硬件組件和軟件組件的集成方式,以及系統(tǒng)如何分解為不同的模塊或子系統(tǒng),同時(shí)還需要考慮性能、可用性、安全性、可擴(kuò)展性等因素。支撐知識(shí)—系統(tǒng)技術(shù)架構(gòu)/02系統(tǒng)技術(shù)架構(gòu)12商城系統(tǒng)采用分層設(shè)計(jì)與實(shí)現(xiàn),即將頁(yè)面展示層與業(yè)務(wù)邏輯層和數(shù)據(jù)訪(fǎng)問(wèn)層分離,便于代碼的重用和維護(hù),使系統(tǒng)具有良好的可讀性、可修改性、可擴(kuò)展性和可維護(hù)性。圖的使用也非常關(guān)鍵,它們可以幫助開(kāi)發(fā)人員更好地理解和管理復(fù)雜的軟件系統(tǒng)。某商城系統(tǒng)基于MVC(Model-View-Controller)模式進(jìn)行設(shè)計(jì),其中Model代表業(yè)務(wù)邏輯和數(shù)據(jù)模型,View表示用戶(hù)界面,Controller表示請(qǐng)求處理和流程控制,通過(guò)將業(yè)務(wù)邏輯、數(shù)據(jù)展示和用戶(hù)界面分離,提高了代碼的可維護(hù)性、可重用性和可擴(kuò)展性。系統(tǒng)技術(shù)架構(gòu)商城系統(tǒng)的框架結(jié)構(gòu)圖。支撐知識(shí)—系統(tǒng)時(shí)序圖/03系統(tǒng)時(shí)序圖①組件:代表系統(tǒng)中的各個(gè)模塊或?qū)ο螅梢杂貌煌男螤顏?lái)表示不同類(lèi)型的組件。②消息:代表組件之間的交互,用箭頭表示,箭頭的方向表示消息的方向。
時(shí)間順序:代表消息傳遞的時(shí)間順序,通常用數(shù)字或時(shí)間標(biāo)簽來(lái)表示。系統(tǒng)時(shí)序圖又名序列圖、循序圖,是一種UML(UnifiedModelingLanguage,統(tǒng)一建模語(yǔ)言)交互圖,是軟件開(kāi)發(fā)過(guò)程中用于描述系統(tǒng)各個(gè)組件之間時(shí)序關(guān)系的一種圖,它以圖形化的方式展示了系統(tǒng)中各個(gè)組件之間的消息傳遞和時(shí)間順序。系統(tǒng)時(shí)序圖時(shí)序圖包括以下元素:(1)角色系統(tǒng)角色,可以是人、其他系統(tǒng)或子系統(tǒng)。(2)對(duì)象對(duì)象代表在交互中所扮演的角色,位于時(shí)序圖頂部。對(duì)象一般包含以下3種命名方式。
第一種方式包含對(duì)象名和類(lèi)名。
第二種方式只顯示類(lèi)名不顯示對(duì)象名,即為一個(gè)匿名對(duì)象。
第三種方式只顯示對(duì)象名不顯示類(lèi)名。系統(tǒng)時(shí)序圖(3)生命線(xiàn)生命線(xiàn)代表時(shí)序圖中的對(duì)象在一段時(shí)期內(nèi)存在。時(shí)序圖中每個(gè)對(duì)象的底部中心都有一條垂直的虛線(xiàn),這就是對(duì)象的生命線(xiàn),對(duì)象間的消息存在于兩條虛線(xiàn)之間。(4)控制焦點(diǎn)控制焦點(diǎn)代表時(shí)序圖中的對(duì)象執(zhí)行一項(xiàng)操作的時(shí)期,在時(shí)序圖中每條生命線(xiàn)上方的矩形代表活動(dòng)期。(5)消息消息是定義交互和協(xié)作中交換信息的類(lèi),用于對(duì)實(shí)體間的通信內(nèi)容建模。消息用于在實(shí)體間傳遞信息,允許實(shí)體請(qǐng)求其他的服務(wù),類(lèi)角色通過(guò)發(fā)送和接收信息進(jìn)行通信。系統(tǒng)時(shí)序圖以購(gòu)物車(chē)功能模塊為例,分析并實(shí)現(xiàn)商城系統(tǒng)中的添加購(gòu)物車(chē)功能,畫(huà)出添加購(gòu)物車(chē)方法涉及的類(lèi)所對(duì)應(yīng)的時(shí)序圖。任務(wù)實(shí)現(xiàn)任務(wù)在網(wǎng)上商城系統(tǒng)中,收貨地址管理是整個(gè)商城的核心功能,用戶(hù)以此來(lái)實(shí)現(xiàn)商品的購(gòu)買(mǎi)以及一次性付款等某商城系統(tǒng)中收獲地址管理任務(wù)實(shí)現(xiàn)某商城系統(tǒng)購(gòu)物車(chē)功能的實(shí)現(xiàn)任務(wù)8.2任務(wù)描述和技術(shù)分析18技術(shù)分析任務(wù)描述商場(chǎng)系統(tǒng)中,購(gòu)物車(chē)管理是很重要的部分,用戶(hù)感興趣待選購(gòu)的商品,可以先添加到購(gòu)物車(chē)中。如果購(gòu)物車(chē)中已經(jīng)存在添加的商品,那就在商品的數(shù)量上進(jìn)行更新。如果購(gòu)物車(chē)中不存在添加的商品,那就完成新商品的添加。另外,在購(gòu)物車(chē)中可以直接對(duì)商品的數(shù)量進(jìn)行修改以及可以對(duì)商品進(jìn)行刪除。在實(shí)現(xiàn)購(gòu)物車(chē)功能時(shí),首先要實(shí)現(xiàn)購(gòu)物車(chē)類(lèi),在其中定義購(gòu)物車(chē)相關(guān)的屬性。基于購(gòu)物車(chē)類(lèi),定義Dao層實(shí)現(xiàn)ShoppingCarDao接口,在其中實(shí)現(xiàn)業(yè)務(wù)邏輯上的方法,定義ShoppingCarDaoImp類(lèi)實(shí)現(xiàn)ShoppingCarDao接口中的方法。在Service層中,基于ShoppingCarDaoImpl類(lèi)實(shí)現(xiàn)面向客戶(hù)端使用的服務(wù)。支撐知識(shí)—實(shí)體類(lèi)/01實(shí)體類(lèi)是面向?qū)ο缶幊讨械囊粋€(gè)概念,主要用于描述系統(tǒng)中各種對(duì)象的類(lèi)別、屬性和方法等,主要負(fù)責(zé)存儲(chǔ)和管理系統(tǒng)內(nèi)部的信息。實(shí)體類(lèi)通常是對(duì)現(xiàn)實(shí)世界中某個(gè)實(shí)體所進(jìn)行的抽象,用于表示實(shí)體的屬性和行為。它可以包含屬性(成員變量)、方法(成員函數(shù))等的定義,用于描述實(shí)體的特征和操作。實(shí)體類(lèi)還可以有行為,這些行為必須與它所代表的實(shí)體對(duì)象密切相關(guān)。實(shí)體類(lèi)實(shí)體類(lèi)商城系統(tǒng)中涉及用戶(hù)、商品、訂單、訂單詳情、收貨地址、購(gòu)物車(chē)等實(shí)體。以訂單實(shí)體為例,在Order類(lèi)中,包含了訂單號(hào)、用戶(hù)ID、訂單收件信息ID、訂單總額、創(chuàng)建時(shí)間、支付時(shí)間等屬性,默認(rèn)的公有無(wú)參構(gòu)造方法,相應(yīng)屬性的setter和getter方法等。具體代碼如下。packagecom.mall.entity;importjava.sql.Timestamp;publicclassOrder{/***訂單號(hào)*/privateStringorderId;/***用戶(hù)ID*/privateIntegeruserId;/***訂單收件信息ID*//**此處省略后續(xù)代碼*/支撐知識(shí)—數(shù)據(jù)訪(fǎng)問(wèn)對(duì)象/02數(shù)據(jù)訪(fǎng)問(wèn)對(duì)象數(shù)據(jù)訪(fǎng)問(wèn)對(duì)象(DataAccessObject,DAO)是一種軟件設(shè)計(jì)模式,用于將數(shù)據(jù)訪(fǎng)問(wèn)的邏輯與業(yè)務(wù)邏輯分離。DAO層的主要作用是將對(duì)數(shù)據(jù)源(如數(shù)據(jù)庫(kù)、文件系統(tǒng)、網(wǎng)絡(luò)服務(wù)等)的訪(fǎng)問(wèn)操作封裝起來(lái),為上層的業(yè)務(wù)邏輯提供統(tǒng)一的數(shù)據(jù)訪(fǎng)問(wèn)接口,使得業(yè)務(wù)邏輯層不需要關(guān)心數(shù)據(jù)是如何存儲(chǔ)和獲取的,只需調(diào)用DAO層提供的方法來(lái)獲取或操作數(shù)據(jù)。數(shù)據(jù)訪(fǎng)問(wèn)對(duì)象DAO層一般先定義一組數(shù)據(jù)訪(fǎng)問(wèn)方法的接口,這些方法描述了對(duì)數(shù)據(jù)的基本操作,如查詢(xún)、插入、更新、刪除等。在訂單的DAO接口OrderDao中,包含查看訂單列表、刪除訂單、下單、更新訂單狀態(tài)等方法,具體代碼如下。packagecom.mall.dao;importcom.mall.entity.Order;importjava.util.List;publicinterfaceOrderDao{/***根據(jù)用戶(hù)ID查看訂單列表**@paramuserId*@return*/publicList<Order>getByUser(IntegeruserId);publicOrdergetById(StringorderId);/**此處省略后續(xù)代碼*/支撐知識(shí)—服務(wù)層/03服務(wù)層服務(wù)層(Service層)處于控制層(Controller)和數(shù)據(jù)訪(fǎng)問(wèn)層(DAO層)之間,主要負(fù)責(zé)處理業(yè)務(wù)邏輯和協(xié)調(diào)各層之間的交互。服務(wù)層一般分為接口定義和類(lèi)實(shí)現(xiàn)接口定義,接口定義通過(guò)定義服務(wù)層的方法和功能,規(guī)定服務(wù)層對(duì)外提供的業(yè)務(wù)操作。以訂單的OrderService接口為例,基本代碼如下。packagecom.mall.service;//省略包導(dǎo)入語(yǔ)句publicinterfaceOrderService{publicList<Order>getOrderList(intuserid);publicOrdergetOrder(StringorderId);publicintdeleteFromOrder(StringorderId);publicintaddOrder(Orderorder);publicintaddOrderDetail(List<OrderDetail>orderDetailList);publicintupdateOrder(StringorderId,intstatus);publicList<OrderDetail>getOrderDetailList(StringorderId);publicList<OrderInfoVo>getOrderInfoList(intuserId);publicOrderInfoVochangeToOrderInfo(Orderorder);}支撐知識(shí)—控制端/04控制端Servlet作為控制層(Controller)的主要角色,負(fù)責(zé)處理業(yè)務(wù)邏輯、控制流程和進(jìn)行數(shù)據(jù)流轉(zhuǎn)。Servlet作為控制端時(shí),執(zhí)行的流程一般為先接收請(qǐng)求,然后根據(jù)數(shù)據(jù)處理業(yè)務(wù)邏輯,再進(jìn)行流程控制,最后根據(jù)結(jié)果進(jìn)行轉(zhuǎn)發(fā)或重定向請(qǐng)求。以訂單處理的OrderServlet類(lèi)為例來(lái)介紹其控制流程,代碼如下。@WebServlet("/orderServlet")publicclassOrderServletextendsHttpServlet{OrderServiceImplorderService=newOrderServiceImpl();ProductServiceImplproductService=newProductServiceImpl();ShoppingCarServiceImplshoppingCarService=newShoppingCarServiceImpl();@OverrideprotectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{intuserId=(Integer)request.getSession().getAttribute("userId");StringproductIds=request.getParameter("productIds");StringproductNums=request.getParameter("productNums");StringreceiverId=request.getParameter("receiverId");Stringkey=request.getParameter("key");/*后續(xù)代碼省略*/支撐知識(shí)—視圖層/05視圖層在MVC架構(gòu)的Web應(yīng)用程序中,JSP作為視圖層(View)的主要組成部分,主要職責(zé)是向用戶(hù)展示數(shù)據(jù)和操作界面,允許用戶(hù)與應(yīng)用程序交互。
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026江蘇南京大學(xué)化學(xué)學(xué)院科研人員招聘?jìng)淇碱}庫(kù)帶答案詳解(典型題)
- 2026江蘇南京大學(xué)醫(yī)學(xué)院技術(shù)管理招聘?jìng)淇碱}庫(kù)及1套參考答案詳解
- 2026江蘇南京大學(xué)醫(yī)學(xué)院技術(shù)管理招聘?jìng)淇碱}庫(kù)含答案詳解(考試直接用)
- 2026年叉車(chē)安全管理證考試題庫(kù)及一套答案
- 2026年叉車(chē)工比賽理論考試題庫(kù)及答案參考
- 2026年叉車(chē)快速培訓(xùn)考試題庫(kù)及完整答案一套
- 2026年叉車(chē)報(bào)名考試題庫(kù)及參考答案1套
- 2026年叉車(chē)模擬試題考試題庫(kù)及完整答案1套
- 2026年叉車(chē)?yán)碚摽荚囶}庫(kù)江蘇及完整答案1套
- 2026年叉車(chē)管理取證考試題庫(kù)及參考答案一套
- (2025)事業(yè)單位考試(面試)試題與答案
- CNAS-GC25-2023 服務(wù)認(rèn)證機(jī)構(gòu)認(rèn)證業(yè)務(wù)范圍及能力管理實(shí)施指南
- 入伍智力測(cè)試題及答案
- 竣工驗(yàn)收方案模板
- 企業(yè)安全生產(chǎn)內(nèi)業(yè)資料全套范本
- 安全生產(chǎn)標(biāo)準(zhǔn)化與安全文化建設(shè)的關(guān)系
- DL-T5054-2016火力發(fā)電廠汽水管道設(shè)計(jì)規(guī)范
- 耳部刮痧治療
- 神經(jīng)外科介入神經(jīng)放射治療技術(shù)操作規(guī)范2023版
- 多模態(tài)數(shù)據(jù)的聯(lián)合增強(qiáng)技術(shù)
- 濱海事業(yè)單位招聘2023年考試真題及答案解析1
評(píng)論
0/150
提交評(píng)論