freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

j2ee項(xiàng)目實(shí)訓(xùn)uml及設(shè)計(jì)模式——第7章架構(gòu)設(shè)計(jì)中的架構(gòu)模式第1部分(完整版)

2025-01-03 17:12上一頁面

下一頁面
  

【正文】 , 2020 年 9 月)中所提出的 23 種 設(shè)計(jì)模 式 。 ( 3) 正確使用設(shè)計(jì)模式是軟件系統(tǒng)的設(shè)計(jì)人員必須掌握的基本技能 因此對(duì)于任何想開發(fā)出靈活高效、健壯的軟件產(chǎn)品的開發(fā)者特別是系統(tǒng)的設(shè)計(jì)人員,熟練掌握并正確使用設(shè)計(jì)模式都是必須掌握的基本技能。使用設(shè)計(jì)模式的 主要 目的是為了能夠更好地獲得可重用性,這包括體系結(jié)構(gòu)和 實(shí)現(xiàn)代碼等方面 ,并能夠 讓所開發(fā)出的軟件系統(tǒng)更容易被他人理解、同時(shí)也保證系統(tǒng)的體系結(jié)構(gòu)的正確性和代碼的可靠性。也能夠說明當(dāng)時(shí)的開發(fā)思路 ;而對(duì)于一個(gè)大規(guī)模的復(fù)雜軟件系統(tǒng)來說,軟件體系架構(gòu)比起對(duì)程序的算法和數(shù)據(jù)結(jié)構(gòu)的選擇來說現(xiàn)在已經(jīng)變得明顯重要得多。本章則主要探討在軟件系統(tǒng)設(shè)計(jì)中與架構(gòu)模式相關(guān)的設(shè)計(jì)思想、原則和方法等內(nèi)容,這主要包括層模 式及應(yīng)用、 MVC 架構(gòu)模式及應(yīng)用、控制器模式及應(yīng)用、門面模式及應(yīng)用等方面的內(nèi)容。 因?yàn)檐浖_發(fā)過程中的一個(gè)永恒的主題是“ 軟件復(fù)用 ”。 另外在 分布式企業(yè)應(yīng)用 系統(tǒng)的開發(fā)中,由于需要 涉及 對(duì) 多種 不同的 技術(shù) 的具體應(yīng)用 , 這將 對(duì)設(shè)計(jì) 和編程 開發(fā)人員提出了 更 高的要求。 ? 不要為了 設(shè)計(jì)模式而 亂用 設(shè)計(jì)模式 通過系統(tǒng)地學(xué)習(xí)和了解設(shè)計(jì)模式,將使開發(fā)者對(duì)系統(tǒng)的設(shè)計(jì)中所涉及的架構(gòu)和實(shí)現(xiàn)代碼會(huì)有更深地理解。 有關(guān)對(duì)通用職責(zé)分配軟件模式的細(xì)節(jié)內(nèi)容的學(xué)習(xí),請(qǐng)讀者參考本書的第八章“通用職責(zé)分配軟件模式( GRASP)”的章節(jié)。 架構(gòu)和模式兩者最主要的不同 ( 1)架構(gòu) (Architecture)更加關(guān)注的是所謂的“高層設(shè)計(jì)”( HighLevel Design) 架構(gòu)是一組有關(guān)如何決定軟件系統(tǒng)的組織 結(jié)構(gòu) 的重要決策,以及 接口和它們相互協(xié)作的行為的選擇。 架構(gòu)設(shè)計(jì)中的層模式 及應(yīng)用 層架構(gòu)模式的典型應(yīng)用 軟件系統(tǒng)中的層( layer) 軟件系統(tǒng)中的 層是一個(gè)大 尺度的元素,通常 是 由一些 系統(tǒng) 包或者子系統(tǒng) (如組件) 組裝而成 的。 ( 2)利用層架構(gòu)模式來組織系統(tǒng)時(shí)能夠構(gòu)造出一個(gè)層次化的系統(tǒng)結(jié)構(gòu) 楊教授工作室 精心創(chuàng)作的優(yōu)秀程序員 職業(yè)提升必讀系列資料 楊教授工作室,版權(quán) 所有,盜版必究 , 7/17 頁 應(yīng)用系統(tǒng)經(jīng)過合理地分層和隔離,從而使得每一層都能夠?yàn)槠渌鶎?duì)應(yīng)的上一層提供服務(wù)而成 為服務(wù)的提供者,同時(shí)也作為下層的客戶端而獲得所需要的服務(wù); 由于層是一種弱耦合結(jié)構(gòu),層與層之間的依賴是向下的,底層對(duì)于上層而言是“無知”的,改變上層的設(shè)計(jì)對(duì)于其調(diào)用的底層而言沒有任何影響。 ( 2) J2EE 平臺(tái)系統(tǒng)開發(fā)中常見的分層策略 但是在實(shí)際的項(xiàng)目開發(fā)中, 應(yīng)用系統(tǒng)的設(shè)計(jì)人員 通常 會(huì) 對(duì) 標(biāo)準(zhǔn)的 三層 架 構(gòu)進(jìn)行擴(kuò)展 以滿足 應(yīng)用系統(tǒng)中 的具體要求。在這種分層體系的結(jié)構(gòu)中,應(yīng)用系統(tǒng)都被 表示為由一系列相關(guān)聯(lián)的各層單獨(dú)的子系統(tǒng)所構(gòu)成,而每個(gè)層中的子系統(tǒng)又都采用組件技術(shù)來設(shè)計(jì)和構(gòu)造,每個(gè)組件系統(tǒng)也可以對(duì)其上、下層中的組件進(jìn)行調(diào)用。 ( 2)降低了系統(tǒng)的可重用性 由于整個(gè)應(yīng)用系統(tǒng)中的各個(gè)功能模塊是相互組合在一起的,特別是系統(tǒng)中的核心應(yīng)用邏輯的功能具體實(shí)現(xiàn)與用戶訪問接口的表示層的具體實(shí)現(xiàn)技術(shù)捆綁在一起。系統(tǒng)經(jīng)過這樣的初步分層后,問題的復(fù)雜性將會(huì)被降低、同時(shí)相關(guān)所要解決的技術(shù)難題也將分散到不同的層面中,并委托不同的技術(shù)特長的開發(fā)人員來解決;再進(jìn)一步地對(duì)該分層設(shè)計(jì)進(jìn)行優(yōu)化和根據(jù)系 統(tǒng)中的具體性能的要求、項(xiàng)目以后的可能變化因素,再進(jìn)一步地細(xì)分。 在系統(tǒng)的架構(gòu)設(shè)計(jì)上,通??梢岳瞄T面(外觀)、控制器、中介等架構(gòu)模式來實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)中的層 與層之間的相互 關(guān)聯(lián)和 協(xié)作。該 DAO 服務(wù)組件其實(shí)就是網(wǎng)上商城系統(tǒng)中的持久層的門面組件。 圖 利用 控制器模式 實(shí)現(xiàn)“ 表示層”和“模型層”之間的關(guān)聯(lián)和 協(xié)作 利用 控制器模式 進(jìn)行系統(tǒng)分層和架構(gòu)的典型應(yīng)用示例是 Apache Struts 框架,在 Struts框架中的控制層組件是由一個(gè)前端控制器 ActionServlet 組件和相關(guān)的多個(gè)不同的后端業(yè)務(wù)控制器 Action 類組件所構(gòu)成的。從整個(gè)系統(tǒng)的總體的全局的角度來看時(shí),系統(tǒng)中的各個(gè)組件之間的交互關(guān)系將會(huì)很復(fù)雜,同時(shí)系統(tǒng)的藕合性也是緊密的關(guān)聯(lián)關(guān)系。它是被客戶所感知的,而原有的復(fù)雜 業(yè)務(wù) 邏輯則被隱藏了起來。 提出這樣的設(shè)計(jì)目標(biāo)的主要目的是希望能夠達(dá)到某一層中的各個(gè)組件能夠得到最大化的重用,同時(shí)也提高了整個(gè)系統(tǒng)的可擴(kuò)展性。但業(yè)務(wù)層的可序列化對(duì)象(通常稱之為值對(duì)象 VO 或者數(shù)據(jù)傳送對(duì)象 DTO)通常是可以被傳遞到表示 層中,并被顯示輸出。 。因此為了能夠?qū)崿F(xiàn)層之間的松藕合的關(guān)聯(lián),可以應(yīng)用反射技術(shù)來動(dòng)態(tài)地裝入目標(biāo)層中的有關(guān)的類對(duì)象。 對(duì)于分層設(shè)計(jì)中的各個(gè)層之間耦合的觀點(diǎn) ( 1)系統(tǒng)中所有較高的層都可以依賴于技術(shù)服務(wù)層和基礎(chǔ) API 層 比如在 Java 中,所有的層都可以依賴于 JDK 中的各個(gè) API 包元素。 ( 4) 中介架構(gòu) 和門 面 架構(gòu)模 式 在后端的服務(wù)提供者的各個(gè)組件之間的關(guān)系方面也是不同的 門面模式 中的后端的服務(wù)提供者之間是可以相互關(guān)聯(lián)的(請(qǐng)見圖 中的各個(gè)組件之間是允許交互的);而在 中介者模式 中,則是 斷絕 后端的服務(wù)提供者( 各個(gè)同事類 ) 之間的直接交互 (比如在圖 所示中的“ 汽車銷售商 ”此時(shí)也不再與“ 商業(yè)銀行 ”進(jìn)行直接交互,它們之間也通過 中介者 組件來實(shí)現(xiàn)交互)。對(duì)圖 中所示的問題,應(yīng)用 中介架構(gòu)模 式 設(shè)計(jì)后的結(jié)果請(qǐng)見下面的圖 所示, 中介架構(gòu)模 式 從分層的效果來看是比 較好的分層策略。 控制調(diào)度層 表示層中的請(qǐng)求 業(yè)務(wù)處理層 表示層中的業(yè)務(wù)成功顯示 數(shù)據(jù)訪問層 表示層中的業(yè)務(wù)失敗顯示 前端控制器 業(yè)務(wù)調(diào)度控制器 楊教授工作室 精心創(chuàng)作的優(yōu)秀程序員 職業(yè)提升必讀系列資料 楊教授工作室,版權(quán) 所有,盜版必究 , 14/17 頁 圖 控制器模式在 Struts 框架中的具體應(yīng)用示圖 利用中介架構(gòu)模 式 實(shí)現(xiàn)用一個(gè)中介對(duì)象把一系列的對(duì)象交互封裝 ( 1) 利用中介架構(gòu) 模 式可以降低系統(tǒng)的復(fù)雜性和提高可擴(kuò)展性 由于類 之間存在 “ 多對(duì)多 ” 的關(guān)系 (每個(gè)對(duì)象所在的層也將緊密藕合),從而導(dǎo)致 各個(gè) 類 之間的交互操作非常多, 同時(shí) 每個(gè) 類 的行為操作都依賴 于 彼此對(duì)方。 圖 網(wǎng)上商城項(xiàng)目的系統(tǒng)架構(gòu)示圖 當(dāng)然,為了將項(xiàng)目中的表示層和系統(tǒng)中的業(yè)務(wù)處理層之間的關(guān)系也希望能夠隔離開,比如考慮到應(yīng)用系統(tǒng)以后將可能需要面對(duì)其它形式的表示層的客戶端的設(shè)備(如手機(jī)、應(yīng)用程序的桌面客戶端等)在具體的系統(tǒng)架構(gòu)時(shí)也可以應(yīng)用“業(yè)務(wù)外觀組件”。從而導(dǎo)致層與層之間的關(guān)聯(lián)關(guān)系出現(xiàn)“多對(duì)多”的連接形式,請(qǐng)見下面的圖 中所示的訪問狀態(tài)。所應(yīng)該把握的是要達(dá)到從較高的層到較低的層進(jìn)行協(xié)作和耦合(高層應(yīng)該依賴下層),避免從底層到高層的耦合。 另外還由于潛在的通用技術(shù)服務(wù)(如數(shù)據(jù)庫訪問的事務(wù)、系統(tǒng)的安全驗(yàn)證、對(duì)象緩存、日志記錄等)或業(yè)務(wù)邏輯,與更具體的應(yīng)用邏輯捆綁在一起,因此這些通用的技術(shù)服務(wù)或者業(yè)務(wù)邏輯功能
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1