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

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

使用Micrisoft.net設(shè)計(jì)方案 第二章組織模式

2019-11-17 02:03:25
字體:
供稿:網(wǎng)友

使用Micrisoft.net設(shè)計(jì)方案 第二章組織模式

第二章組織模式

模式不僅依賴于它所包含的更小模式,同時(shí)也依賴包含它的更大的模式。它是描述復(fù)雜軟件的系統(tǒng)方法。

本章的目標(biāo)是讓我們了解以下問題:

1、如何標(biāo)識模式與模式的關(guān)系

2、如何把模式組織成模式集合

3、如何采用不同抽象級別去劃分模式

4、如何使用模式解決系統(tǒng)中涉及到的各個(gè)方面

5、如何用模式描述解決方案

模式與模式

模式能夠描述關(guān)系。采用面向?qū)ο笤O(shè)計(jì)的軟件都是有類組成,如果拋開類與類間的關(guān)系,模式將什么問題也不能解決。模式把一組類組織成便于管理的模式集合。

我們設(shè)計(jì)系統(tǒng)時(shí),會發(fā)現(xiàn)使用的模式比使用的類都多,那么如何理解模式的作用呢?關(guān)鍵問題是理解項(xiàng)目間的關(guān)系。模式與模式的關(guān)系比較密切,因此在組織模式是按照關(guān)系去組織。

模式集群

我們很容易從一種模式轉(zhuǎn)換到另一種模式上,但我們還不知道如何在系統(tǒng)中使用這些模式,或者應(yīng)該學(xué)習(xí)哪些模式。因此這就引起了另一個(gè)概念,那就是模式集群。模式集群是涉及特定主題的一組模式的集合。通過模式集群,我們能了解到模式與模式是如何組合,是如何去構(gòu)建企業(yè)級解決方案。模式集群分為5大類,分別是:

集群類型 解決的問題

Web表示 創(chuàng)建動態(tài)網(wǎng)站

分布式系統(tǒng) 解決在不同計(jì)算機(jī)或進(jìn)程間通信的問題

部署 解決分層應(yīng)用程序部署到分級硬件上

性能和安全 為某些重要的特定操作提供可靠的保障機(jī)制

服務(wù) 使用外部服務(wù)和對外提供服務(wù)

不同級別的抽象

將模式劃分為群集方便管理,如構(gòu)建Web前端只要從Web群集入手就可以。但不同人在項(xiàng)目的不同階段,感興趣的方向也不同。如開發(fā)人員喜歡Page Control模式,而體系設(shè)計(jì)人員喜歡分層(Layer)模式。因此我們從抽象級別上對模式進(jìn)行分類,便于不同人查找自己感興趣的方向。傳統(tǒng)上,使用抽象級別把模式劃分為3類,分別是:

體系結(jié)構(gòu)模式:主要描述軟件的基礎(chǔ)結(jié)構(gòu),會提前設(shè)定子系統(tǒng)或組建間的關(guān)系、準(zhǔn)則、行為以及職能。例如層(Layer)模式

設(shè)計(jì)模式:優(yōu)化子系統(tǒng)或組建間的關(guān)系。主要解決在上下中反復(fù)出現(xiàn)的問題。例如MVC設(shè)計(jì)模式、單件(Singleton)模式

實(shí)現(xiàn)模式:特定于某種語言或平臺的設(shè)計(jì)模式,如Microsoft.Net的Page Control模式

視點(diǎn)

代碼不能全部反應(yīng)解決方案中的各個(gè)方面,比如硬件、網(wǎng)絡(luò)和部署等方面,因此需要有與設(shè)計(jì)模式相對應(yīng)的名稱,因此引入視點(diǎn)的概念。視點(diǎn)不描述層次結(jié)構(gòu),而只是提供看待事情的不同方法。從軟件體系上一般分為四個(gè)視點(diǎn),分別是:

1、 數(shù)據(jù)庫視點(diǎn):是軟件的持久層,用于存儲數(shù)據(jù)

2、 應(yīng)用程序視點(diǎn):是解決方法的可執(zhí)行部分,包括域模型、類、程序集、進(jìn)程等

3、 基礎(chǔ)結(jié)構(gòu)視點(diǎn)

4、 部署視點(diǎn)

模式框架

作為參考點(diǎn)和導(dǎo)航助手隨每個(gè)單獨(dú)的模式提供描述,同時(shí)把各種有意義的子類別組織模式的集合。模式框架有如下特定:

1、 聯(lián)機(jī)事物處理:管理事務(wù)處理的數(shù)據(jù)庫子系統(tǒng),為業(yè)務(wù)處理提供原子操作

2、 面向?qū)ο?/p>

3、 分層應(yīng)用程序

4、 分級分布系統(tǒng)

使用模式描述解決方案

受到約束的模式框架及其所包含的模式提供了足夠多的數(shù)據(jù)點(diǎn),以便開始使用模式來描述整個(gè)解決方案。實(shí)際上,第 1 章中的報(bào)價(jià)示例可以用模式術(shù)語來描述。回憶一下,其要求中指定了一個(gè)基于 Web 的報(bào)價(jià)應(yīng)用程序。描述解決方案體系結(jié)構(gòu)的用戶可能會做如下表述:

首先讓我們在抽象的體系結(jié)構(gòu)級別看一下這個(gè)報(bào)價(jià)應(yīng)用程序。從應(yīng)用程序視點(diǎn),報(bào)價(jià)應(yīng)用程序是面向?qū)ο蟮膽?yīng)用程序,它在邏輯上構(gòu)造成Three-Layered Services application. (三層服務(wù)應(yīng)用程序)。從數(shù)據(jù)庫視點(diǎn),應(yīng)用程序是基于 OLTP 處理模型的。從基礎(chǔ)結(jié)構(gòu)視點(diǎn),硬件和網(wǎng)絡(luò)體系結(jié)構(gòu)是基于 Four-Tiered Distribution(四級分布)的,這要求 Web 服務(wù)器功能和應(yīng)用程序服務(wù)器功能具有不同的物理級。最后,從部署視點(diǎn),小組已經(jīng)基于復(fù)雜的 Web 應(yīng)用程序創(chuàng)建了一個(gè)Deployment Plan (部署規(guī)劃),以便將組件映射到服務(wù)器。

這從所有這四個(gè)視點(diǎn)向熟悉參考模式的讀者簡述了解決方案的體系結(jié)構(gòu)。繼續(xù)向下移動一個(gè)抽象級別,可能會看到作者這樣描述系統(tǒng)設(shè)計(jì):

從應(yīng)用程序視點(diǎn),讓我們分別考慮 Three-Layered Services Application(三層服務(wù)應(yīng)用程序)的每一層。

表示層是圍繞基于Model-View-Controller (MVC) 的 Web 表示框架構(gòu)造的。 盡管 MVC 將業(yè)務(wù)層和表示邏輯層分開了,但是每一頁都包含大量公共邏輯。為了消除這種冗余,我們使用 Page Controller 來呈現(xiàn)公共頭和尾注信息并為用戶設(shè)置友好的顯示名稱。

業(yè)務(wù)層包含客戶、報(bào)價(jià)、訂單、系列物品和庫存域?qū)ο蟆S捎陂_發(fā)速度是一個(gè)重要要求,因此這些域?qū)ο笫鞘褂?Table Module(表模塊)實(shí)現(xiàn)的。復(fù)雜的 Web 應(yīng)用程序 Deployment Model (部署模型)要求 Web 級和應(yīng)用程序級分開。因此,這兩級通過一個(gè)代理程序進(jìn)行通信。業(yè)務(wù)實(shí)體充當(dāng) Data Transfer Objects,用于封裝在這兩級之間傳送的信息。

數(shù)據(jù)層使用 Data Table Gateway來訪問 OLTP 數(shù)據(jù)庫子系統(tǒng),并使用大量數(shù)據(jù)訪問組件來支持域?qū)ο蟮某志眯砸蟆?/p>

從基礎(chǔ)結(jié)構(gòu)視點(diǎn):為了滿足業(yè)務(wù)的操作要求,我們通過添加Load-Balanced Cluster (負(fù)載平衡群集)和Failover Cluster(故障轉(zhuǎn)移群集)來基于基本的 Four-Tiered Distribution(四級分布)模型構(gòu)建。為了滿足高級別并發(fā)用戶的要求,我們在 Web 級中添加了負(fù)載平衡功能。為了滿足可用性要求,我們在數(shù)據(jù)庫級中添加了群集。

可以繼續(xù)描述位于同一抽象級別的數(shù)據(jù)和部署視點(diǎn)。為此,再向下移動一個(gè)抽象級別,可能會看到作者這樣描述解決方案的實(shí)現(xiàn):

讓我們從應(yīng)用程序視點(diǎn)來查看解決方案。解決方案是使用 Microsoft .NET 技術(shù)構(gòu)建的。表示層基于 asp.net 中內(nèi)置的 Web 表示框架。ASP.NET 使用內(nèi)置的代碼隱藏頁功能來簡化 Model-View-Controller 的實(shí)現(xiàn)。我們使用 ASP.NET 中內(nèi)置的 Page Controller 機(jī)制來實(shí)現(xiàn)表示邏輯。業(yè)務(wù)層中的域?qū)ο笫?.NET 托管對象。因?yàn)楸硎緦雍蜆I(yè)務(wù)層部署在不同的級上,所以我們使用服務(wù)器激活對象通過 .NET Remoting 實(shí)現(xiàn) Broker。最后,數(shù)據(jù)層基于 .NET Framework 中的 ADO.NET 類來提供數(shù)據(jù)庫訪問。Table Modules(表模塊)和業(yè)務(wù)實(shí)體是使用 ADO.NET 的數(shù)據(jù)集組件構(gòu)造的。數(shù)據(jù)訪問組件的其余部分由 Microsoft Application Blocks for .NET 構(gòu)建塊提供。

從基礎(chǔ)結(jié)構(gòu)視點(diǎn):Microsoft SQL Server? 運(yùn)行在故障轉(zhuǎn)移群集中,用于 OLTP 數(shù)據(jù)庫子系統(tǒng)中。Microsoft 網(wǎng)絡(luò)負(fù)載平衡群集在 Web 服務(wù)器之間提供負(fù)載平衡。

所有這些會話都經(jīng)常參考各種模式。最初,這可能有點(diǎn)讓人望而卻步,但當(dāng)您了解所使用的模式后,就會認(rèn)識到即使是一個(gè)簡短的描述也會讓您詳細(xì)了解系統(tǒng)是如何工作的。請注意,您不必翻閱大量文檔或逐步執(zhí)行無窮無盡的代碼行,即可對此有所了解。設(shè)想一下在不使用模式的情況下描述解決方案而需涉及到的工作,就不難知道模式所帶來的溝通好處。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 米林县| 马公市| 徐水县| 当雄县| 杭锦后旗| 遵义市| 延寿县| 四平市| 靖边县| 二连浩特市| 和龙市| 封丘县| 元阳县| 观塘区| 乌拉特后旗| 巴马| 颍上县| 南汇区| 昌吉市| 浦县| 荔波县| 漳平市| 聂荣县| 城固县| 都江堰市| 虎林市| 大宁县| 盘山县| 宁城县| 南和县| 尼玛县| 将乐县| 灌南县| 凯里市| 高淳县| 扶风县| 东兰县| 阳春市| 遵义县| 建宁县| 东乌珠穆沁旗|