專案總結 談談封裝(抽象工廠 反射 快取機制)

2021-06-17 23:22:45 字數 2189 閱讀 2090

今天想給大家說的也是剛剛結束的專案中遇到的乙個優秀的封裝,當然也要拿出來給大家分享了。

背景交代

,我們的專案是乙個bs的專案,基本的架構是工廠模式三層,所以就用到了抽象工廠加反射,今天要給大家講的也就是這塊的東西——使用快取檔案。

背景交代完畢。

msdn上說:

通常,應用程式可以將那些頻繁訪問的資料,以及那些需要大量處理時間來建立的資料儲存在記憶體中,從而提高效能。例如,如果應用程式使用複雜的邏輯來處理大量資料,然後再將資料作為使用者頻繁訪問的報表返回,避免在使用者每次請求資料時重新建立報表可以提高效率。同樣,如果應用程式包含乙個處理複雜資料但不需要經常更新的頁,則在每次請求時伺服器都重新建立該頁會使工作效率低下。

asp.net為您提供了乙個強大的、便於使用的快取機制,用於將需要大量伺服器資源來建立的物件儲存在記憶體中。快取這些型別的資源會大大改進應用程式的效能。

快取(cache)是一種用空間換取時間的技術,存在於計算機中很多地方,用來將一些慢速裝置中的常用資料儲存在快速裝置中,取資料的時候直接從快速裝置中取。比如cpu二級快取、記憶體、windows檔案讀取快取。快取是改進**效能的第乙個手段,就像索引是改進資料庫效能的第乙個手段一樣

快取是由

cache

類實現的;快取例項是每個應用程式專用的。快取生存期依賴於應用程式的生存期;重新啟動應用程式後,將重新建立

cache

物件。

設計cache

類是為了便於使用。您可以將項放置在

cache

中,並在以後使用簡單的鍵/值對來檢索這些項。

說的上面的這些當然都是官方的語言,下面給大家介紹我的這個專案中是如何使用快取檔案的:

上面說過,「將需要大量伺服器資源來建立的物件儲存在記憶體中」大家想想這個

b/s程式,乙個訪問者的一次訪問和一萬個訪問者的一百萬次訪問,給伺服器帶來壓力的對比就很容易體會快取的好處了。每一次的訪問請求資料庫都需要執行耗費資源的反射機制來動態的建立

d層的例項。如果使用快取把第一次建立的例項儲存起來,每一次訪問都把已經存在建立好的例項拿來用,對伺服器來說就節省了好大的一筆開銷。而且我們需要儲存的也就是

d層中屈指可數的幾個類。

說的太多了,上**:

從工廠某乙個方法開始:

/// /// 建立sqlmaintainrecordinfo資料層介面。維修日誌表--韓義

///

public static idal.imaintainrecordinfo createt_maintainrecordinfo()

和以往直接使用反射機制不同,這個呼叫createobject函式:

//使用快取--韓義

private static object createobject(string assemblypath,string classnamespace)

catch(system.exception ex)

}return objtype;

}

這個大家也能看到,建立前需要先判斷,需要建立的

d層類在快取中是否已經存在,如果如果存在直接返回,如果不存在使用反射機制建立,然後儲存,方便以後使用。

其中的datacache.getcache和datacache.setcache:

/// /// 快取操作類--韓義

///

public class datacache

/// /// 設定當前應用程式指定cachekey的cache值--韓義

///

public static void setcache(string cachekey, object objobject)

}

看到這個我想大家應該會想這裡確實也可以使用單例模式

--如果有的話返回,沒有的話建立返回。

設計cache

類是為了便於使用。您可以將項放置在

cache

中,並在以後使用簡單的鍵/值對來檢索這些項。在webform中主要是為了減輕web伺服器壓力,在客戶端提供了快取機制,當使用者訪問的網頁內容無變化的請求時就會呼叫快取中的內容,這樣一來減輕了伺服器壓力,避免無必要的重複操作,二來使使用者網頁瀏覽速度加快,使用者體驗更好。webform是「瘦客戶端」。

專案總結 談談封裝(抽象工廠 反射 快取機制)

今天想給大家說的也是剛剛結束的專案中遇到的乙個優秀的封裝,當然也要拿出來給大家分享了。背景交代,我們的專案是乙個bs的專案,基本的架構是工廠模式三層,所以就用到了抽象工廠加反射,今天要給大家講的也就是這塊的東西 使用快取檔案。背景交代完畢。msdn上說 通常,應用程式可以將那些頻繁訪問的資料,以及那...

專案總結 談談封裝(抽象工廠 反射 快取機制)

今天想給大家說的也是剛剛結束的專案中遇到的乙個優秀的封裝,當然也要拿出來給大家分享了。背景交代,我們的專案是乙個bs的專案,基本的架構是工廠模式三層,所以就用到了抽象工廠加反射,今天要給大家講的也就是這塊的東西 使用快取檔案。背景交代完畢。msdn上說 通常,應用程式可以將那些頻繁訪問的資料,以及那...

專案總結 談談封裝(條件查詢)

做完了圖書館維修管理系統,又接到乙個任務,就是給測試組的講一下我們合作開發過程中遇到的問題,以及心得體會,這也正好讓我們幾個開發的有機會能淨下心來好好的總結一下自己通過這個專案的收穫,總結完了還有人 檢查 一下學習成果是個好差事。這次做專案因為是合作開發,對於 合作 這兩個字的理解有了很深的認識,要...