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

正文內(nèi)容

petshop詳解(存儲版)

2024-09-30 06:34上一頁面

下一頁面
  

【正文】 數(shù)據(jù)訪問操作。 } } } 以下則是 中 appSettings節(jié)點中的一部分: add key=WebDAL value= / add key=OrdersDAL value= /? add key=Event Log Source value=.NET Pet Shop / 上面的 Create()方法返回 IAccount 接口,用[WebDAL]。 Assembly 類 定義一個 Assembly,它是可重用、無版本沖突并且可自我描述的公共語言運行庫應(yīng)用程序構(gòu)造塊。 參數(shù) typeName 要查找的類型的 。 為了簡化數(shù)據(jù)庫訪問類的使用,我們選擇 GoF 概述的 “ 工廠設(shè)計模式 ” ,通過反射 , 動態(tài) 地 在運行時加載正確的數(shù)據(jù)訪問對象 。 這意味著, 如果要創(chuàng)建應(yīng)用程序的 DB2 版本,我們不需要改動業(yè)務(wù)邏輯層(或者 UI 層) 。 圖 10. .NET Pet Shop 中 DAL 工廠類的實現(xiàn) 根據(jù)上圖總結(jié)出的訪問流程:(修訂了 SQLServer 學(xué)習(xí)筆記中的訪問流程) 通過 ()選擇加載了一個正確的 DAL 組件(比如SQLServerDAL) 創(chuàng)建了一個正確的 DAL 層組件的 Product 類的實例 返回了一個該 Product 類在 IDAL 層的接口 IProduct 存在的疑問: 什么不直接返回已經(jīng)選出來的,適當(dāng)?shù)?DAL 組件(如 SQLServerDAL)的適當(dāng)?shù)膶ο螅ㄈ鏟roduct),而返回了一個該對象在 IDAL 層的引用? IDAL 層的引進究竟目的何在?是否單純?yōu)榱艘?guī)范下層 DAL 組件所必須實現(xiàn)的數(shù)據(jù)訪問方法?還是說只要使用工廠模式就必須定義接口,并且即使使用反射確定了應(yīng)該正確加載的 DAL 組件的對象,也必須返回對象接口引用? 自己的答案:如果不返回接口,那么上層 BLL 在得到返回的 DAL 組件對象之后,就有可能知道在下層究竟使用的是 SQLServerDAL 還是 OracleDAL,這就有可能在 BLL 層有針對性地進行編程 —— 而這正是使用多層模式想要避免的?。。? 。 圖 10 說明了 業(yè)務(wù)邏輯類、工廠類和數(shù)據(jù)庫訪問類是如何相互操作的 。 在選擇數(shù)據(jù)庫特定的訪問類時進行的考慮是, 我們需要為每個 即將 支持的數(shù)據(jù)庫平臺遍寫一個單獨的數(shù)據(jù)訪問層 ,因此應(yīng) 用程序?qū)啻a。 public object CreateInstance(string typeName)。 AccountInfo account = (userId, password)。 string className = path + .Account。 無需更改或重新編譯業(yè)務(wù)邏輯組件。 為了使應(yīng)用程序更安全,為版本控制提供更好的支持,我們可以在應(yīng) 用程序配置文件(也就是這里的 . )中添加要加載的程序集文件的 “證據(jù) ”,這意味著 .NET 框架將只加載我們在編譯期間簽過名而且有正確版本號的程序集。 } //…… } 那么和所謂 “依賴注入 ”相關(guān)的代碼都可以利用 ServiceLocator 來完成。 private static readonly string orderPath = [”O(jiān)rdersDAL”]。那么,抽象工廠模式中的相關(guān)工廠就可以簡化為一個工廠類了,所以我將這種模式稱之為 “具有簡單工廠特 質(zhì)的抽象工廠模式 ”,其類圖如下: DataAccess類完全取代了前面創(chuàng)建的工廠類體系,它是一個 sealed 類,其中創(chuàng)建各種數(shù)據(jù)對象的方法,均為靜態(tài)方法。一旦整個系統(tǒng)要求支持 Oracle,那么還需要修改這行代碼為: PetShopFactory factory = new OracleFactory()。留待我們的還有兩個問題需要解決: 數(shù)據(jù)對象創(chuàng)建的管理 利于數(shù)據(jù)庫的移植 在 PetShop 中,要創(chuàng)建的數(shù)據(jù)對象包括 Order, Product, Category, Inventory, Item。 } } 沒有 SQL語句,也沒有那些煩人的 Parameters,甚至不需要專門去考慮事務(wù)。 當(dāng)然,如果應(yīng)用 ORM,那么一切就變得不同了。如要使用相關(guān)的 SQL語句,就利用關(guān)鍵字搜索獲得對應(yīng)語句。這種方法使得程序更加整潔,此外,由于存儲過程可以以數(shù)據(jù)庫腳本的形式存在,也便于移植和修改。 在沒有 ORM 的情況下,使用 Helper 類是一個比較好的策略,利用它來完成數(shù)據(jù)庫基本操作的封裝,可以減少很多和數(shù)據(jù)庫操作有關(guān)的代碼,這體現(xiàn)了對象復(fù)用的原則。其次,它體現(xiàn)了 “抽象 ”的精神,或者說是 “面向接口編程 ”的最佳體現(xiàn)。這些實體類都被放到 Model 程序集中,例如數(shù)據(jù)表 Order 對應(yīng)的實體類 OrderInfo,其類圖如下: 這些對象并不具有持久化的功能,簡單地說,它們是作為數(shù)據(jù)的載體,便于業(yè)務(wù)邏輯針對相應(yīng)數(shù)據(jù)表進行讀 /寫操作。 DALFactory:數(shù)據(jù)訪問層的抽象工廠(決定創(chuàng)建哪種數(shù)據(jù)庫類型的數(shù)據(jù)訪問層。同時,在事務(wù)、數(shù)據(jù)緩存、安全方面使用了 .NET 附帶的特性,構(gòu)建了一個靈活的最佳實踐的應(yīng)用程序。1.項目概述與架構(gòu)分析 微軟剛推出了基于 下的 Pet Shop 4, 該版本有了一個全新的用戶界面。新的 Petshop4 實現(xiàn)了與 Petshop 3相同甚至更多的特性,由于采用了 Master Pages, Membership,以及 Profile, SqlCacheDependency,但是代碼量卻減少了四分之一。 序號 項目名稱 描述 1 WEB 表示層 2 Model 業(yè)務(wù)實體 3 BLL 業(yè)務(wù)邏輯層 4 DALFactory 數(shù)據(jù)層的抽象工廠 5 IDAL 數(shù)據(jù)訪問層接口定義 6 SQLServerDAL SQLServer數(shù)據(jù)訪問層 7 OracleDAL Oracle 數(shù)據(jù)訪問層 8 DBUtility 數(shù)據(jù)庫訪問組件基礎(chǔ)類 9 CacheDependencyFactory 緩存依賴類的 工廠類 10 ICacheDependency 緩存依賴類 接口 11 TableCacheDependency 緩存依賴實現(xiàn)類 12 IBLLStrategy 同步 /異步處理策略接口 (實現(xiàn)在 bll 根據(jù)配置反射選擇 ) 13 MessagingFactory 異時處理消息隊列的 抽象工廠 14 IMessaging 異時處理消息隊列接口定義 15 MSMQMessaging 異時處理消息隊列的實現(xiàn) 16 Profile Profile的數(shù)據(jù)訪問層 17 ProfileDALFactory ProfileDAL 的工廠類 (反射創(chuàng)建 ProfileDAL) 18 IProfileDAL Profile的數(shù)據(jù)訪問層接口定義 19 OracleProfileDAL Oracle的 Profile Providers 做用戶狀態(tài)管理 20 SQLProfileDAL SQL Server 的 Profile Providers 做用戶狀態(tài)管理 21 Membership Membership 認證和授權(quán)管理 22 OrderProcessor 后臺處理進程,處理訂單隊列
點擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1