成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

開發 后端
最近用.NET做web項目的時候遇到了一些問題,就是很多的頁面的處理一樣的,不一樣的就是我們寫的存儲過程不同,為了考慮代碼的重復利用和可維護性和可擴展性,于是寫了一個對于單據頁面的ASP.NET工廠模式,采用界面的繼承技術。

我們寫的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);用ASP.NET工廠模式來判斷實例那個中間層變量來完成不同的工作。這就是簡單ASP.NET工廠模式。

【編輯推薦】

  1. ASP.NET環境下的Shell函數
  2. 在ASP.NET中向數據庫批量插入數據
  3. ASP.NET用Post方式向網頁發送數據
  4. ASP.NET 2.0部署WEB應用程序淺析
  5. ASP.NET中的HttpWorkerRequest對像
  6. ASP.NET 2.0中的OWC組件前夕
責任編輯:彭凡 來源: 51CTO
相關推薦

2009-07-27 15:25:40

aspx頁面ASP.NET

2009-07-23 14:17:41

2009-07-29 17:26:39

ASP.NET頁面

2009-07-31 10:23:44

緩存頁面ASP.NET緩存

2009-07-24 10:53:51

ASP.NET實現靜態

2009-07-31 10:33:54

ASP.NET頁面輸出

2009-08-05 18:22:55

2009-07-23 10:52:38

2009-07-29 14:35:34

頁面輸出緩存ASP.NET

2009-07-21 15:40:59

Asp.Net動態頁面

2009-07-28 16:40:11

ASP.NET異步頁面

2009-07-23 14:21:55

ASP.NET頁面

2009-07-30 18:45:05

ASP.NET中防止頁

2009-08-03 13:38:18

ASP.NET編程模型

2011-06-08 10:28:15

ASP.Net

2009-07-27 15:58:25

添加GridView

2009-08-04 10:51:09

Attributes和ASP.NET頁面

2012-05-07 13:23:47

ASP.NET

2009-07-23 14:08:58

2009-07-31 13:06:53

CheckBoxLisASP.NET頁面
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品乱子伦一区二区三区 | 久久免费电影 | 国产亚洲精品精品国产亚洲综合 | 91久久国产综合久久 | 干干干操操操 | 精品一区二区免费视频 | 亚洲激情在线观看 | 亚洲视频在线观看 | 欧美一二三区 | 91精品国产一区二区在线观看 | 亚洲成人三区 | 一级欧美一级日韩片 | 九色在线观看 | 亚洲天堂av网 | 亚洲精品在线免费观看视频 | 欧美激情久久久久久 | 久久新 | 国产一区二区三区免费视频 | 成人免费视频网站在线看 | 亚洲一区二区视频 | 中文字幕在线第一页 | 一区二区三区国产 | 亚欧午夜 | 狠狠久久久| 成人做爰9片免费看网站 | 欧美一级精品片在线看 | 日韩人体在线 | 中文成人无字幕乱码精品 | 小视频你懂得 | 国产一区中文字幕 | 日本不卡一区二区三区 | 久久成人免费 | 国产91在线精品 | 男人天堂午夜 | 精品欧美一区二区中文字幕视频 | 欧美簧片 | 91免费看片 | 伊人伊成久久人综合网站 | 一本色道久久综合亚洲精品高清 | 黄网免费| 国产区在线观看 |