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

首頁 > 編程 > .NET > 正文

ASP.net 中的頁面繼承實現和通用頁面的工廠模式的實現

2024-07-10 12:57:40
字體:
來源:轉載
供稿:網友

商業源碼熱門下載www.html.org.cn

最近用.net做web項目的時候遇到了一些問題,就是很多的頁面的處理一樣的,不一樣的就是我們寫的存儲過程不同,為了考慮代碼的重復利用和可維護性和可

擴展性,于是寫了一個對于單據頁面的工廠模式,采用界面的繼承技術,因為我們寫的asp.net頁面的是代碼后置的,所以我們繼承的時候就繼承我們的后置的代碼,也就是我們說的xxxx.aspx.cs文件。其實頁面的繼承和我們普通的類繼承一樣,只是asp.net頁面的界面是html和后置代碼共同組成的,所以也有一些不同,好了先進開始我們的asp.net頁面繼承之旅:

我在這里總結了一幅在.net環境下用rational xde生成的uml圖給大家一個直觀感性的認識,我先來講解一些這副圖中的類和它們的關系,billfactory類是我定義的單據工廠它來識別產生那種單據,virturbillcom是一個虛擬類(也可以是接口)它定義了一些方法讓繼承它的類來實現,issuebillmng_frm和issuebill_frm是頁面的后置代碼類,負責頁面的一些操作比如,按鈕狀態,調用業務邏輯等,billinstoragemnglist和issuebillmng分別繼承virturbillcom虛擬類來實現業務處理調用數據存儲層等,billinstoragemnglist負責入庫單的處理,issuebillmng負責出庫單的處理。billentity和billitementity是數據庫映射的實體類。billinstoragemng繼承了頁面類issuebillmng_frm,billinstorage繼承類頁面類issuebill_frm,大家可以看到,billinstoragemng類和billinstorage類由于繼承類頁面類,所以他們的類中只有一個空的構造函數,其他的都可以由它的父類處理,在這里大家可能要問,這樣就可以完成頁面的繼承了嗎?,呵呵,這只是其中的一步,為了達到和父類的頁面顯示同樣的效果,必須把父類中的html拷貝到子類的html中,這樣界面的顯示一樣了(如果你要改動一下界面可以在子類界面的html中改動添加按鈕等),但是有個問題是,在.net設計器中拷貝html到子類的頁面時,進入該子頁面的后置代碼的時候會自動的添加頁面上的服務器控件在變量聲明的地方,我們可以想象,這些控件在父類已經存在了而且默認為保護類型為protected 所以子類也可以看到,所以控件就會重復,就很出錯的,必須在子類中把父類已經用的控件變量刪除掉,如果子類自己想有其他的操作可以自己加入控件,但變量不能和父類重復。這樣很簡單就完成了頁面的繼承,大家可以試試,它可以減少很多的重復的代碼。

還有就是我想說的就是billinstoragemnglist類和issuebillmng類,他們都繼承virturbillcom實現了virturbillcom定義的函數,他們是中間層,所以我們在頁面中調用的時候可以直接調用virturbillcom,具體真正的實現哪個實例由billfactory來實現,這樣可能還有不明白的,具體的說在issuebillmng_frm的構造函數中(頁面的構造函數默認是沒有的,我們的自己加)聲明一個virturbillcom 的實例如:mgrobr = billfactory(this);用工廠來判斷實例那個中間層變量來完成不同的工作。這就是簡單工廠模式,大家有不明白的可以看看設計模式。好了今天就說到這,有什么不明白的可以在探討,雖然我的表達可能有些地方不太清楚,大家可以好好看看這副圖,是典型的工廠模式圖,好啦該下班回家了。祝大家晚間愉快。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安平县| 安国市| 英山县| 胶州市| 石阡县| 邻水| 安乡县| 周宁县| 泸州市| 法库县| 抚松县| 饶平县| 旅游| 婺源县| 江孜县| 灌云县| 陆良县| 林芝县| 师宗县| 将乐县| 盐边县| 冕宁县| 石首市| 遂昌县| 喀喇沁旗| 巨鹿县| 巴塘县| 新沂市| 广宗县| 乡城县| 北京市| 扎鲁特旗| 巨野县| 怀安县| 崇州市| 石屏县| 潼南县| 营口市| 珠海市| 昌吉市| 乐安县|