還貸的人是誰? 管他是父親還是兒子,把錢還回來就行


本篇從案例開始,為了更好理解接口以及C#的知識,本篇拋開客戶端jQuery或是Javascript知識,也就是說ASP.NET與C#一起討論。

進入之前,你可以先細讀msdn文章《Cross-Page Posting in ASP.NET Web Pageshttp://msdn.microsoft.com/en-us/library/ms178139(v=vs.110).aspx 或者論壇上一篇問題

為什么我這個跨網頁傳遞一直報錯!未將對象實例化??http://bbs.csdn.net/topics/390937410 。這兩篇均可以歸為同一類知識。但是它們有一個共同的地方,就是在目標頁中,去指定前一頁控件名稱,紅色箭頭指向高亮位置:


這里就是這次我們討論的重點,也就是說你不能把它寫死了。比如說,你(借方)有很多錢,借給了很多人(貸方),多少人不確定,現在你提醒或是他們要還你錢。因此借方不能只使用TextBox1去代表所有貸方。
貸方有可能是TextBox2,DropDownList3,RadioButtonList2,......等等

這樣你得在上面MSDN代碼示例中要寫上很多代碼,如:


現在,我們要怎樣解決這個問題,我們怎樣知道還錢的人是誰。

為了解這個問題,下面 Insus.NET創建一個asp.net站點,也順便創建好幾個網頁,去代表借(debit)貸(credit)。

下面這個演示站點程序大概如下,首先是借方Debit.aspx:

 

 Debit.aspx.cs:

 

下面是貸方Credit,Insus.NET在演示中,列舉了四個,實際環境中,也許會有少有多。先是Credit1.aspx:

 

由於Creditn.aspx.cs沒有寫任何代碼,因此就不帖出來了。
Credit2.aspx:

 

Credit3.aspx:


Credit4.aspx:

 

分別演示一下,程序是能正常運行的:



上面的程序,我們都寫死了,稍微改動一下,它就有問題了。再用演示,看看其它問題:


某一天系統維護時,在xxx.aspx改變了一些控件,它就取不到值了,或者是在Debit.aspx.cs中的代碼,改變了一下控件ID名,在這些情況,均是在開發或是維護時,因某一處更改,好幾個地方均需要更改。一旦取不了值,你需要重新去debug程序。

OK,我們需要解決這些問題,一是代碼有可以不斷增多,另外一個問題,不想寫死控件ID。

其實最終關心的是貸方是否有把錢還回來。因此我們可以建一個接口Interface:



接口寫好,貸方均需要實現這個接口,因為借了錢,就要還貸。

先來看看Credit1.aspx.cs:



Credit2.aspx.cs:


Credit3.aspx.cs:


Credit4.aspx.cs:


 任何一人,借了錢,均要實作這個接口。

這樣好辦了:


這個一改過之后,程序藕合已經脫離了。一方只管拿回自己的錢,一方不管是父親還是兒子還錢(TextBox1還是DropDownList3......)

運行結果與沒有重構前一樣效果一樣。

如果某一個Credit方有任何變更,如果TextBox1改為TextBox9還是DropDownList2改為TextBox,都與Debit借方無關了。如Credit3.aspx:



那只需要修改Credit3.aspx.cs:



全部說完了。雖是一個簡單的例子,望你能更好理解接口在asp.net的應用。說實話,在Insus.NET的博客中,經常有使用interface的例子,有時間可以參考參考,可以加深理解與印象:
http://www.cnblogs.com/insus/category/308317.html


本演示源程序可以下面鏈接下載:
http://download.cnblogs.com/insus/ASPDOTNET/DebitAndCredit.rar

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM