1.3.4 Web表示模式
在第8章中,將注意力轉(zhuǎn)向企業(yè)級(jí)ASP.NET應(yīng)用程序的表示需求。這一章關(guān)注的是專門用來(lái)讓業(yè)務(wù)邏輯與表示邏輯分離的模式。首先,將介紹早期Web表單開發(fā)中普遍使用的代碼隱藏模型帶來(lái)的問(wèn)題;然后研究那些能夠?qū)㈩I(lǐng)域和表示邏輯分離同時(shí)讓表示層能夠有效測(cè)試的模式。
這些模式的任務(wù)都是將用于表示的邏輯關(guān)注點(diǎn)與業(yè)務(wù)邏輯關(guān)注點(diǎn)分離。ASP.NET表示需要所涵蓋的模式有:
● Model-View-Presenter(模型-視圖-表示器)。
● Model-View-Controller(模型-視圖-控制器)。
● Front Controller(前端控制器)。
● Page Controller(頁(yè)面控制器)。
1.3.5 基本模式、行為模式和結(jié)構(gòu)模式
在本書中,將介紹如何在企業(yè)ASP.NET應(yīng)用程序中利用Fowler著作中的其他企業(yè)模式。這些模式將包括Null Object(空對(duì)象)、Separated Interface(獨(dú)立接口)、Registry(注冊(cè)表)和Gateway(網(wǎng)關(guān))。
1. Null Object模式
Null Object(空對(duì)象)模式也稱為Special Case(特殊情況)模式,它充當(dāng)返回值而不是向調(diào)用代碼返回null??諏?duì)象將與預(yù)期結(jié)果共享相同的接口或者從相同的基類繼承而來(lái),這樣減少了在代碼基中到處檢查null情況的需要。
2. Separated Interface模式
Separated Interface(獨(dú)立接口)模式要求將接口放在一個(gè)獨(dú)立于具體實(shí)現(xiàn)的程序集或命名空間中。這確??蛻舳送耆恢谰唧w實(shí)現(xiàn),而且能夠遵循面向抽象編程(而不是面向?qū)崿F(xiàn))以及依賴倒置原則。
3. Gateway模式
Gateway(網(wǎng)關(guān))模式允許客戶端通過(guò)一個(gè)簡(jiǎn)化的接口來(lái)訪問(wèn)復(fù)雜的資源。網(wǎng)關(guān)對(duì)象基本上將資源API包裝成一個(gè)能夠在應(yīng)用程序中到處使用的單個(gè)方法調(diào)用。此外,它還隱藏了所有的API復(fù)雜性。
這里介紹的所有企業(yè)模式都將在本書中更詳細(xì)地進(jìn)行討論,并有配套練習(xí)來(lái)演示如何在ASP.NET方案中實(shí)現(xiàn)它們。1.4節(jié)是本章最后一部分,簡(jiǎn)要介紹一些設(shè)計(jì)方法學(xué),以及運(yùn)用本章中已經(jīng)介紹的模式和原則的實(shí)踐。