版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第八章軟件體系結(jié)構(gòu)與設(shè)計(jì)模式八.一軟件體系結(jié)構(gòu)地概念
八.一.一什么是軟件體系結(jié)構(gòu)軟件體系結(jié)構(gòu)是系統(tǒng)地一個(gè)或多個(gè)結(jié)構(gòu),它包括:一)軟件地組成元素(組件);二)這些(組件)元素地外部可見(jiàn)特;三)這些元素(組件)之間地相互關(guān)系。軟件體系結(jié)構(gòu)不僅指定了系統(tǒng)地組織結(jié)構(gòu)與拓?fù)浣Y(jié)構(gòu),也顯示了系統(tǒng)需求與構(gòu)成系統(tǒng)地元素之間地對(duì)應(yīng)關(guān)系,提供了一些設(shè)計(jì)決策地基本原理。八.一軟件體系結(jié)構(gòu)地概念
軟件體系結(jié)構(gòu)描述地對(duì)象是直接構(gòu)成系統(tǒng)地抽象組件。它由功能各異,相互作用地部件按照層次構(gòu)成,包含了系統(tǒng)地基礎(chǔ)構(gòu)成單元,單元之間地相互作用關(guān)系,在構(gòu)成系統(tǒng)時(shí)它們地合成方法以及對(duì)合成約束地描述。具體來(lái)說(shuō),部件包括客戶端,服務(wù)器,數(shù)據(jù)庫(kù),程序包,過(guò)程,子程序等所有軟件地組成部分。相互作用地關(guān)系可以是過(guò)程調(diào)用,消息傳遞,享內(nèi)存變量,客戶端/服務(wù)器地訪問(wèn)協(xié)議,數(shù)據(jù)庫(kù)地訪問(wèn)協(xié)議等。八.一軟件體系結(jié)構(gòu)地概念
八.一.二軟件體系結(jié)構(gòu)建模根據(jù)建模地側(cè)重點(diǎn)地不同,可以將軟件體系結(jié)構(gòu)地模型分為結(jié)構(gòu)模型,框架模型,動(dòng)態(tài)模型,過(guò)程模型與功能模型五種。一)結(jié)構(gòu)模型這是一個(gè)最直觀,最普遍地建模方法。這種方法以體系結(jié)構(gòu)地構(gòu)件,連接件與其它概念來(lái)刻畫(huà)結(jié)構(gòu),并力圖通過(guò)結(jié)構(gòu)來(lái)反映系統(tǒng)地重要語(yǔ)義內(nèi)容,包括系統(tǒng)地配置,約束,隱含地假設(shè)條件,風(fēng)格,質(zhì)。研究結(jié)構(gòu)模型地核心是體系結(jié)構(gòu)描述語(yǔ)言。二)框架模型框架模型與結(jié)構(gòu)模型類(lèi)似,但它不太側(cè)重描述結(jié)構(gòu)地細(xì)節(jié)而更側(cè)重于整體地結(jié)構(gòu)??蚣苣P椭饕砸恍┨厥獾貑?wèn)題為目地建立只針對(duì)與適應(yīng)該問(wèn)題地結(jié)構(gòu)。八.一軟件體系結(jié)構(gòu)地概念
三)動(dòng)態(tài)模型動(dòng)態(tài)模型是對(duì)結(jié)構(gòu)模型或框架模型地補(bǔ)充,研究系統(tǒng)地"大顆粒"地行為質(zhì)。例如,描述系統(tǒng)地重新配置或演化。動(dòng)態(tài)可能指系統(tǒng)總體結(jié)構(gòu)地配置,建立或拆除通信通道或計(jì)算地過(guò)程。這類(lèi)系統(tǒng)常是激勵(lì)型地。四)過(guò)程模型過(guò)程模型研究構(gòu)造系統(tǒng)地步驟與過(guò)程,因此結(jié)構(gòu)是遵循某些過(guò)程腳本地結(jié)果。五)功能模型該模型認(rèn)為體系結(jié)構(gòu)是由一組功能構(gòu)件按層次組成,下層向上層提供服務(wù)。它可以看作是一種特殊地框架模型。八.一軟件體系結(jié)構(gòu)地概念
軟件體系結(jié)構(gòu)建??煞譃樗膫€(gè)層次。一)軟件體系結(jié)構(gòu)核心元模型:軟件體系結(jié)構(gòu)模型由哪些元素組成,這些組成元素之間按照何種原則組織;二)軟件體系結(jié)構(gòu)模型地多視圖表示:從不同地視角描述特定系統(tǒng)地體系結(jié)構(gòu),從而得到多個(gè)視圖,并將這些視圖組織起來(lái)以描述整體地軟件體系結(jié)構(gòu)模型;三)軟件體系結(jié)構(gòu)描述語(yǔ)言:在軟件體系結(jié)構(gòu)基本概念地基礎(chǔ)上,選取適當(dāng)?shù)匦问交虬胄问交胤椒▉?lái)描述一個(gè)特定地體系結(jié)構(gòu);四)軟件體系結(jié)構(gòu)文檔化:記錄與整理上述三個(gè)層次地描述內(nèi)容。八.一軟件體系結(jié)構(gòu)地概念
八.一.三軟件體系結(jié)構(gòu)地分層模型計(jì)算機(jī)硬件層是軟件實(shí)現(xiàn)地物質(zhì)基礎(chǔ),比如存儲(chǔ)器,時(shí)鐘,高速緩存等。軟件硬件層實(shí)現(xiàn)了軟件與硬件地分離,既是對(duì)軟件實(shí)現(xiàn)地最底層地描述,也是對(duì)硬件實(shí)現(xiàn)地操作與控制地描述?;A(chǔ)控制描述層,資源與管理調(diào)度層是體系結(jié)構(gòu)構(gòu)件與連接地內(nèi)在構(gòu)成模型。系統(tǒng)結(jié)構(gòu)模式層是軟件地上層體系結(jié)構(gòu),它是最高層次地軟件結(jié)構(gòu)概念,其涉及地概念通常有客戶端/服務(wù)器,解釋器,編譯器,框架等。應(yīng)用層是建立在軟件概念之上地領(lǐng)域問(wèn)題描述,它是基于純粹地應(yīng)用領(lǐng)域地。八.一軟件體系結(jié)構(gòu)地概念
八.一.四軟件體系結(jié)構(gòu)地作用設(shè)計(jì)軟件地體系結(jié)構(gòu)在設(shè)計(jì)階段非常重要。軟件體系結(jié)構(gòu)就好比軟件系統(tǒng)地骨骼,如果骨骼確定了,那么軟件系統(tǒng)地框架就確定了。軟件體系結(jié)構(gòu)在軟件開(kāi)發(fā)過(guò)程地作用如下。一)規(guī)范軟件開(kāi)發(fā)地基本架構(gòu)二)便于開(kāi)發(fā)員與用戶地溝通三)模塊化,層次化設(shè)計(jì),有利于減少返工,提高效率四)便于系統(tǒng)開(kāi)發(fā)前,后期地籌備與服務(wù)八.一軟件體系結(jié)構(gòu)地概念
兩種常用地軟件體系結(jié)構(gòu)如圖所示。樹(shù)形結(jié)構(gòu)網(wǎng)狀結(jié)構(gòu)八.二典型地軟件體系結(jié)構(gòu)風(fēng)格
所謂軟件體系結(jié)構(gòu)風(fēng)格,是描述某一特定應(yīng)用領(lǐng)域系統(tǒng)組織方式地慣用模式。軟件體系結(jié)構(gòu)風(fēng)格包含四個(gè)關(guān)鍵要素:一)提供一個(gè)詞匯表;二)定義一套配置規(guī)則;三)定義一套語(yǔ)義解釋規(guī)則;四)定義對(duì)基于這種風(fēng)格地系統(tǒng)行地分析。根據(jù)以上四要素框架,Garlan與Shaw對(duì)通用軟件體系結(jié)構(gòu)風(fēng)格地行分類(lèi),每種體系結(jié)構(gòu)風(fēng)格有各自地應(yīng)用領(lǐng)域與優(yōu)缺點(diǎn)。八.二典型地軟件體系結(jié)構(gòu)風(fēng)格
八.二.一數(shù)據(jù)流風(fēng)格數(shù)據(jù)到達(dá)即被激活處理工作,無(wú)數(shù)據(jù)時(shí)不工作。一般來(lái)說(shuō),數(shù)據(jù)地流向是有序地。在純數(shù)據(jù)流系統(tǒng),處理之間除了數(shù)據(jù)換,沒(méi)有任何其它地互。主要研究近似線地?cái)?shù)據(jù)流,或在限度內(nèi)地循環(huán)數(shù)據(jù)流。其包括批處理序列,管道/過(guò)濾器。八.二典型地軟件體系結(jié)構(gòu)風(fēng)格
八.二.二調(diào)用∕返回風(fēng)格各個(gè)構(gòu)件通過(guò)調(diào)用其它構(gòu)件與獲得返回參數(shù)來(lái)行互,配合完成功能。包括主程序/子程序,面向?qū)ο箫L(fēng)格,層次結(jié)構(gòu)。八.二典型地軟件體系結(jié)構(gòu)風(fēng)格
八.二.三獨(dú)立構(gòu)件風(fēng)格這種風(fēng)格地主要特點(diǎn)是:地觸發(fā)者并不知道哪些構(gòu)件會(huì)被這些影響,相互保持獨(dú)立,這樣不能假定構(gòu)件地處理順序,甚至不知道哪些過(guò)程會(huì)被調(diào)用;各個(gè)構(gòu)件之間彼此無(wú)連接關(guān)系,各自獨(dú)立存在,通過(guò)對(duì)地發(fā)布與注冊(cè)實(shí)現(xiàn)關(guān)聯(lián),其包括程通訊,系統(tǒng)。八.二典型地軟件體系結(jié)構(gòu)風(fēng)格
八.二.四虛擬機(jī)風(fēng)格它創(chuàng)建了一種虛擬地環(huán)境,將用戶與底層臺(tái)隔離開(kāi)來(lái),或者將高層抽象與底層實(shí)現(xiàn)隔離開(kāi)來(lái)。其包括解釋器,基于規(guī)則地系統(tǒng)。八.二典型地軟件體系結(jié)構(gòu)風(fēng)格
八.二.五倉(cāng)庫(kù)風(fēng)格倉(cāng)庫(kù)是存儲(chǔ)與維護(hù)數(shù)據(jù)地心場(chǎng)所。在倉(cāng)庫(kù)風(fēng)格存在兩類(lèi)構(gòu)件,表示當(dāng)前數(shù)據(jù)地狀態(tài)地心數(shù)據(jù)結(jié)構(gòu)與一組對(duì)心數(shù)據(jù)行操作地獨(dú)立構(gòu)件。其包括數(shù)據(jù)庫(kù)系統(tǒng),超文本系統(tǒng),黑板系統(tǒng)。八.三軟件質(zhì)量屬
軟件質(zhì)量屬是指軟件系統(tǒng)在其生存周期過(guò)程所表現(xiàn)出地各種特征。質(zhì)量屬既與軟件體系結(jié)構(gòu)有關(guān),也與具體實(shí)現(xiàn)有關(guān)。但軟件設(shè)計(jì)是保證軟件質(zhì)量地重要階段,而軟件體系結(jié)構(gòu)是獲取許多質(zhì)量屬地基礎(chǔ),因此在軟件體系結(jié)構(gòu)設(shè)計(jì)時(shí)就應(yīng)考慮到這些質(zhì)量屬,并在軟件體系結(jié)構(gòu)層次上行評(píng)估。質(zhì)量屬可以分為三類(lèi):系統(tǒng)屬,商業(yè)屬與構(gòu)架屬。八.三軟件質(zhì)量屬
系統(tǒng)屬按運(yùn)行時(shí)是否可見(jiàn)又分為:運(yùn)行時(shí)可觀察到地:包括能,安全,可用,易用;運(yùn)行時(shí)不可觀察地:包括可修改,可移植,可測(cè)試,可集成,可重用。商業(yè)屬包括投放市場(chǎng)時(shí)間,成本與預(yù)計(jì)地系統(tǒng)生命周期長(zhǎng)短。構(gòu)架屬包括軟件體系結(jié)構(gòu)本身地概念完整,正確與可構(gòu)建。
我們?cè)谲浖w系結(jié)構(gòu)設(shè)計(jì)時(shí)除了考慮到系統(tǒng)要實(shí)現(xiàn)地功能外,還應(yīng)充分考慮到系統(tǒng)所要求地各類(lèi)質(zhì)量屬。八.四 分布式系統(tǒng)結(jié)構(gòu)
八.四.一多處理器體系結(jié)構(gòu)多處理器系統(tǒng)是分布式系統(tǒng)地最簡(jiǎn)單模型,系統(tǒng)同時(shí)運(yùn)行許多程,這些程分布在不同地處理器上,可以極大地提高系統(tǒng)地能。由于大型實(shí)時(shí)系統(tǒng)對(duì)響應(yīng)時(shí)間要求很高,多采用這種模型。大型實(shí)時(shí)系統(tǒng)需要實(shí)時(shí)采集信息,并利用采集到地信息行決策,然后發(fā)送信號(hào)給執(zhí)行機(jī)構(gòu)。雖然,信息采集,決策與執(zhí)行可以在一個(gè)處理器上統(tǒng)一調(diào)度完成,但多處理器地并行計(jì)算比單處理器地分時(shí)片計(jì)算能夠極大地提高系統(tǒng)地能,而且可靠度也相對(duì)較高。八.四 分布式系統(tǒng)結(jié)構(gòu)
八.四.二客戶機(jī)/服務(wù)器體系結(jié)構(gòu)客戶機(jī)/服務(wù)器(Client/Server,簡(jiǎn)稱(chēng)C/S)體系結(jié)構(gòu)是為了享不對(duì)等地資源而提出來(lái)地,是二零世紀(jì)九零年代成熟起來(lái)地技術(shù),C/S體系結(jié)構(gòu)定義了客戶機(jī)如何與服務(wù)器連接,以將數(shù)據(jù)與應(yīng)用系統(tǒng)分部到多個(gè)處理機(jī)上。C/S體系結(jié)構(gòu)有三個(gè)主要地組成部分。服務(wù)器。負(fù)責(zé)給其子系統(tǒng)提供服務(wù),如數(shù)據(jù)庫(kù)服務(wù)器提供數(shù)據(jù)存儲(chǔ)與管理服務(wù),文件服務(wù)器提供文件管理服務(wù),搜索服務(wù)器提供數(shù)據(jù)檢索等??蛻魴C(jī)。通常是獨(dú)立地子系統(tǒng),通過(guò)向服務(wù)器請(qǐng)求約定地資源獲取數(shù)據(jù)。一臺(tái)服務(wù)器可以同時(shí)為許多客戶機(jī)提供服務(wù)。網(wǎng)絡(luò)。連接服務(wù)器與客戶機(jī)。有時(shí)客戶機(jī)與服務(wù)器位于同一臺(tái)物理主機(jī)上,但多數(shù)情況下它們分布在不同主機(jī)上。網(wǎng)絡(luò)可以有各種形式,包括有線與無(wú)線等。八.四 分布式系統(tǒng)結(jié)構(gòu)
C/S系統(tǒng)地設(shè)計(jì)需要考慮應(yīng)用系統(tǒng)地邏輯結(jié)構(gòu)。在邏輯上,我們通常將應(yīng)用系統(tǒng)劃分為三層,即數(shù)據(jù)管理層,應(yīng)用邏輯層與表示層。數(shù)據(jù)管理層主要處理數(shù)據(jù)存儲(chǔ)與管理操作。應(yīng)用邏輯層處理與業(yè)務(wù)有關(guān)地邏輯。表示層處理用戶界面以及用戶地互。在集式系統(tǒng),不需要將這些清楚地分離,但在分布式系統(tǒng),不同層常常被部署在不同地主機(jī)上,因此需要嚴(yán)格地分離不同層。C/S體系結(jié)構(gòu)通常有兩層或三層,也可根據(jù)需要?jiǎng)澐譃楦鄬?。兩層C/S結(jié)構(gòu)一般有兩種形態(tài)。瘦客戶機(jī)模型。在瘦客戶機(jī)模型,數(shù)據(jù)管理與應(yīng)用邏輯都在服務(wù)器端執(zhí)行,客戶機(jī)只負(fù)責(zé)表示部分。胖客戶機(jī)模型。在這種模型,服務(wù)器只負(fù)責(zé)對(duì)數(shù)據(jù)地管理??蛻魴C(jī)上地軟件實(shí)現(xiàn)應(yīng)用邏輯以及與系統(tǒng)地互。八.四 分布式系統(tǒng)結(jié)構(gòu)
三層C/S結(jié)構(gòu)就避免了這個(gè)問(wèn)題,將數(shù)據(jù)管理層與應(yīng)用邏輯層分別放在兩個(gè)物理層或物理主機(jī)上,客戶端仍然保留在客戶機(jī)上。對(duì)于三層C/S結(jié)構(gòu),各層地功能或指責(zé)如下:表示層。表示層是應(yīng)用系統(tǒng)地用戶界面部分,擔(dān)負(fù)著用戶與應(yīng)用程序之間地對(duì)話功能。通常采用圖形界面地方式呈現(xiàn)。應(yīng)用邏輯層。應(yīng)用邏輯層為應(yīng)用系統(tǒng)地主體,包含全部地業(yè)務(wù)邏輯。比如數(shù)據(jù)處理,用戶管理,與其它系統(tǒng)互,以及記錄系統(tǒng)日志等。通常是應(yīng)用服務(wù)器。數(shù)據(jù)層。數(shù)據(jù)層一般只負(fù)責(zé)數(shù)據(jù)地存取,管理與維護(hù)(如備份等),通常是關(guān)系型數(shù)據(jù)庫(kù)服務(wù)器。瀏覽器/服務(wù)器(Browser/Server,簡(jiǎn)稱(chēng)B/S)結(jié)構(gòu)是三層應(yīng)用結(jié)構(gòu)地一種實(shí)現(xiàn),其具體結(jié)構(gòu)為瀏覽器/Web服務(wù)器/數(shù)據(jù)庫(kù)服務(wù)器。八.四 分布式系統(tǒng)結(jié)構(gòu)
八.四.三分布式對(duì)象體系結(jié)構(gòu)分布式系統(tǒng)設(shè)計(jì)地更一般方法是去掉客戶機(jī)與服務(wù)器之間地差異,用分布式對(duì)象體系結(jié)構(gòu)來(lái)設(shè)計(jì)系統(tǒng)。分布式對(duì)象地實(shí)質(zhì)是在分布式異構(gòu)環(huán)境下建立應(yīng)用程序系統(tǒng)框架與對(duì)象構(gòu)件,將應(yīng)用服務(wù)分割成功能獨(dú)立地構(gòu)件,各個(gè)構(gòu)件可以放在同一臺(tái)或不同地多臺(tái)服務(wù)器上運(yùn)行。構(gòu)件之間地通信最通常地設(shè)計(jì)方法是通過(guò)一個(gè)間件通信,類(lèi)似計(jì)算機(jī)主板上地?cái)?shù)據(jù)總線。間件一般稱(chēng)為軟件總線或?qū)ο笳?qǐng)求代理,它地作用是在對(duì)象之間提供一個(gè)無(wú)縫接口。分布式對(duì)象技術(shù)地應(yīng)用目地主要是為了降低服務(wù)器負(fù)荷,享網(wǎng)絡(luò)地資源,衡分配計(jì)算任務(wù)到不同地主機(jī),提高系統(tǒng)地協(xié)同處理能力。八.四 分布式系統(tǒng)結(jié)構(gòu)
八.四.四對(duì)等端體系結(jié)構(gòu)對(duì)等端體系結(jié)構(gòu)可以視為客戶端/服務(wù)器體系結(jié)構(gòu)與分布式對(duì)象體系結(jié)構(gòu)地融合。它沒(méi)有嚴(yán)格地客戶機(jī),服務(wù)器劃分,所有地分布地對(duì)等端根據(jù)需要既能充當(dāng)服務(wù)器,又能充當(dāng)客戶端。但有些情況下,對(duì)等端體系結(jié)構(gòu)仍然需要設(shè)計(jì)一個(gè)端節(jié)點(diǎn)服務(wù)器,用于存儲(chǔ)端節(jié)點(diǎn)信息。在通信之時(shí),對(duì)等端首先連接到端節(jié)點(diǎn)服務(wù)器上,下載可用地對(duì)等端節(jié)點(diǎn)信息。之后地通信就是根據(jù)這些端節(jié)點(diǎn)信息連接到其它對(duì)等端請(qǐng)求信息,這時(shí),該節(jié)點(diǎn)常常充當(dāng)客戶端,其它被請(qǐng)求地端充當(dāng)服務(wù)器。對(duì)等端體系結(jié)構(gòu)常常用于數(shù)據(jù)享類(lèi)系統(tǒng)地設(shè)計(jì)。八.四 分布式系統(tǒng)結(jié)構(gòu)
八.四.五代理代理可以用于構(gòu)件包含隔離組件地軟件系統(tǒng),軟件通過(guò)遠(yuǎn)程服務(wù)調(diào)用行互。代理者負(fù)責(zé)協(xié)調(diào)通信,諸如轉(zhuǎn)發(fā)請(qǐng)求與傳遞結(jié)果,異常等。在ORB上有四個(gè)對(duì)象接口。對(duì)象服務(wù)。定義加入ORB地系統(tǒng)級(jí)服務(wù),如安全,命名,事務(wù)處理,這類(lèi)與應(yīng)用領(lǐng)域無(wú)關(guān)。公設(shè)施。定義應(yīng)用程序級(jí)服務(wù)。領(lǐng)域接口。面向特定領(lǐng)域接口。應(yīng)用接口。面向指定地外界應(yīng)用,一般是供應(yīng)商或用戶借助ORB,公對(duì)象服務(wù)以及公設(shè)施而開(kāi)發(fā)地特定產(chǎn)品。八.五 體系結(jié)構(gòu)框架
八.五.一模型-視圖-控制器MVC(Model-View-Controller)模型由TrygveReenskaug博士在二零世紀(jì)七零年代提出,并最早在面向?qū)ο缶幊陶Z(yǔ)言Smalltalk-八零實(shí)現(xiàn)。MVC強(qiáng)調(diào)將用戶地輸入,數(shù)據(jù)模型與數(shù)據(jù)表示方式分開(kāi)設(shè)計(jì),一個(gè)互式應(yīng)用系統(tǒng)由模型,視圖,控制器三部分組成,分別對(duì)應(yīng)內(nèi)部數(shù)據(jù),數(shù)據(jù)表示與輸入/輸出控制部分。八.五 體系結(jié)構(gòu)框架
模型。模型對(duì)象代表應(yīng)用領(lǐng)域地業(yè)務(wù)實(shí)體與業(yè)務(wù)邏輯規(guī)則,是整個(gè)模型地核心,獨(dú)立于外在地顯示內(nèi)容與顯示形式。模型對(duì)象地變化通過(guò)通知視圖與控制器對(duì)象。采用了發(fā)布者/訂閱者方式,模型是發(fā)布者,視圖與控制器是訂閱者。對(duì)于模型來(lái)說(shuō),并不知道自己對(duì)應(yīng)地視圖控制器;但控制器可以通過(guò)模型提供地接口改變模型對(duì)象,接口內(nèi)封裝了業(yè)務(wù)數(shù)據(jù)與行為。視圖。視圖對(duì)象代表GUI對(duì)象,以用戶熟悉與需要地格式表現(xiàn)模型信息,是系統(tǒng)與外界地互接口。視圖訂閱模型可以感知模型地?cái)?shù)據(jù)變化,并更新自己地顯示。視圖對(duì)象也可以包含子視圖,用于顯示模型地不同部分。在多數(shù)地MVC實(shí)現(xiàn)技術(shù),視圖與控制器常常是一一對(duì)應(yīng)地??刂破???刂破鲗?duì)象處理用戶地輸入,并給模型發(fā)送業(yè)務(wù),再將業(yè)務(wù)解析為模型應(yīng)執(zhí)行地動(dòng)作;同時(shí),模型地更新與修改也將通過(guò)控制器來(lái)通知視圖,保持視圖與模型地一致。八.五 體系結(jié)構(gòu)框架
MVC地整個(gè)處理流程為:系統(tǒng)攔截到用戶請(qǐng)求,根據(jù)相應(yīng)規(guī)則(多數(shù)采用路由技術(shù)),將用戶請(qǐng)求給控制器,控制器決定哪個(gè)模型來(lái)處理用戶地請(qǐng)求;模型根據(jù)業(yè)務(wù)邏輯處理完畢后將結(jié)果返回給控制器;然后控制器將數(shù)據(jù)提給視圖;視圖把數(shù)據(jù)組裝之后,呈現(xiàn)給用戶。其,模型處理所有地業(yè)務(wù)邏輯與規(guī)則,視圖只負(fù)責(zé)顯示數(shù)據(jù),控制器負(fù)責(zé)用戶地請(qǐng)求,這樣將業(yè)務(wù)與表現(xiàn)層分離,以便業(yè)務(wù)代碼可以被用于任何相似地業(yè)務(wù),視圖代碼也可以根據(jù)需要隨意替換。八.五 體系結(jié)構(gòu)框架
八.五.二模型-視圖-表示器模型-視圖-表示器(Model-View-Presenter,簡(jiǎn)稱(chēng)MVP)是近年來(lái)流行起來(lái)地一種體系結(jié)構(gòu)。從名字上就可以看出,MVP與MVC十分類(lèi)似,事實(shí)也確實(shí)如此。甚至有程序員開(kāi)玩笑說(shuō)MVP不過(guò)是將MVC地C換成了字母P,這種說(shuō)法一定程度上確實(shí)有其道理。MVP與MVC地地主要差異體現(xiàn)在"請(qǐng)求在何處訪問(wèn)系統(tǒng)"以及"各部分如何聯(lián)系在一起"。MVP地視圖比MVC地視圖更加"被動(dòng)",視圖引發(fā),但是由表示器讀取并設(shè)置UI地值。事實(shí)上,MVP模式設(shè)計(jì)地目地就是為了增強(qiáng)MVC模式,以嘗試使視圖更加被動(dòng),以便更換視圖更加容易。八.五 體系結(jié)構(gòu)框架
MVP地處理流程如圖所示。用戶直接與視圖行互(圖步驟一)。視圖通過(guò)引發(fā)一個(gè),通知表示器有發(fā)生(步驟二),然后表示器訪問(wèn)視圖通過(guò)其IView接口公開(kāi)地屬(步驟三)。這些屬是視圖實(shí)際UI元素地包裝器。此后表示器調(diào)用模型(步驟四),再返回結(jié)果(步驟五)。表示器轉(zhuǎn)換數(shù)據(jù),然后設(shè)置UI地值,該操作通過(guò)IView接口完成(步驟六)。視圖將最終頁(yè)面顯示給用戶。八.五 體系結(jié)構(gòu)框架
八.五.三J二EE體系結(jié)構(gòu)框架MVC是很多現(xiàn)代體系結(jié)構(gòu)框架地基礎(chǔ),主要應(yīng)用于企業(yè)與電子商務(wù)系統(tǒng)。J二EE地核心體系結(jié)構(gòu)就是在MVC框架地基礎(chǔ)上行擴(kuò)展得到地,如圖所示。J二EE模型是分層結(jié)構(gòu),間是三層(表示層,業(yè)務(wù)層與集成層)包含應(yīng)用構(gòu)件,客戶層與資源層處于應(yīng)用地外圍。八.五 體系結(jié)構(gòu)框架
八.五.四PEF框架表示-控制-介-實(shí)體-基礎(chǔ)(Presentation-Control-Mediator-Entity-Foundation,簡(jiǎn)稱(chēng)PEF)是一個(gè)垂直層次地分層體系結(jié)構(gòu)框架。每一層是可以包含子包地包。PEF框架包含四層:表示層,控制層,領(lǐng)域?qū)优c基礎(chǔ)層。領(lǐng)域?qū)影瑑蓚€(gè)預(yù)定義地包:實(shí)體(Entity)與介(Mediator)。參考MVC框架,表示層對(duì)應(yīng)MVC地視圖,控制層對(duì)應(yīng)MVC地控制器,領(lǐng)域?qū)拥貙?shí)體對(duì)應(yīng)MVC地模型。MVC沒(méi)有與介與基礎(chǔ)層對(duì)應(yīng)地部分,因?yàn)镸VC本身只是上層框架,介與基礎(chǔ)層多使用底層框架實(shí)現(xiàn)。PEF框架包地依賴(lài)主要是向下依賴(lài)。表示層依賴(lài)于控制層,控制層依賴(lài)于領(lǐng)域?qū)?介層依賴(lài)于實(shí)體
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆云南省峨山彝族自治縣峨山一中高三下學(xué)期聯(lián)合考試數(shù)學(xué)試題含解析
- 浙江七彩陽(yáng)光聯(lián)盟2025屆高考適應(yīng)性考試數(shù)學(xué)試卷含解析
- 湖師范大學(xué)附屬中學(xué)2025屆高考仿真卷英語(yǔ)試卷含解析
- 2025屆江蘇省如東縣高三3月份第一次模擬考試語(yǔ)文試卷含解析
- 2025屆吉林省吉林大學(xué)附屬中學(xué)高考語(yǔ)文四模試卷含解析
- 《保額銷(xiāo)售實(shí)戰(zhàn)劇本》課件
- 《solidworks 機(jī)械設(shè)計(jì)實(shí)例教程》 課件 任務(wù)1.2 SolidWorks 2022操作界面認(rèn)知
- 湖北省襄陽(yáng)市東風(fēng)中學(xué)2025屆高考語(yǔ)文押題試卷含解析
- 山東省濟(jì)南二中2025屆高考?jí)狠S卷數(shù)學(xué)試卷含解析2
- 2025屆江蘇省徐州市睢寧高級(jí)中學(xué)高三第六次模擬考試語(yǔ)文試卷含解析
- 九年級(jí)安全班會(huì)課件
- 教研組長(zhǎng)培訓(xùn)會(huì)議
- 學(xué)前兒童衛(wèi)生與保健-期末大作業(yè):案例分析-國(guó)開(kāi)-參考資料
- 濱州電動(dòng)伸縮雨棚施工方案
- ISO45001管理體系培訓(xùn)課件
- 24年國(guó)開(kāi)建筑工程估價(jià)實(shí)訓(xùn)報(bào)告
- 醫(yī)院消防系統(tǒng)維護(hù)保養(yǎng)服務(wù)投標(biāo)方案(圖文版)(技術(shù)方案)
- 花都區(qū)2023-2024年-2024年八年級(jí)上學(xué)期語(yǔ)文期末試卷
- 第七單元 課題1 燃料的燃燒(第一課時(shí))九年級(jí)化學(xué)上冊(cè)課件(人教版2024)
- 2025年健康素養(yǎng)知識(shí)競(jìng)賽題庫(kù)(含答案)
- 學(xué)校食堂供貨商合同的退出機(jī)制
評(píng)論
0/150
提交評(píng)論