(原創)物件導向的系統對接介面編寫。第4篇

發表於2016-02-28

接上一篇:http://www.cnblogs.com/mazhiyuan/p/5224050.html

這篇開始寫Post和Get請求的佈局。

我們就以新聞模組來舉例吧。其它的模組,比如使用者啦,比如音訊模組啦,依樣畫葫蘆,都一樣的。

圖片

先建立一個新聞模組的資料夾。我們叫“News"

圖片
然後,如上圖1,2,3共三個紅圈。建立這3個檔案。

我們先講第2件檔案:CommandType.cs
圖片

CommandType.cs檔案,如上圖。他就是一個列舉。裡面定義了各種業務邏輯。比如裡面有”新增新聞動態“。在這裡,我們就以新增新聞動態為例子。
要注意的是:我們給新增新聞動態起的名字叫:AddAppNews ,那麼這個名字。必須要有一個相應的.cs檔案。不是隨便亂寫的。

還記得上面有張圖,裡面有3個紅圈嗎?其中第1個紅圈的名字,就叫AddAppNews.cs。這裡要注意名字必須一致。那有人會問了,為什麼啊?因為我們這裡用到了反射技術。到時候會將這個名字反射為一個真實的.cs檔案。。所以必須一樣。如果不一樣,就反射不到了。





下面講Index.cs檔案。也就紅圈中的第3個:
圖片

程式碼細說,裡面用到了單例模式。。關於單例模式,我就不解釋他的程式碼了。就這麼簡單:如上圖的第12行到第19行,就是單例模式的所有程式碼。共7行。

public BaseCommand CreateCommandInstance(CommandType type)    這個方法用到了反射技術。上面的CommandType.cs的列舉命名,就是用在這裡了。到時候會在這裡反射。




下面講具體業務:AddAppNews.cs檔案:
圖片

程式碼細說下:
public class AddAppNews : Post    新增新聞,我們用的是POS請求,所以要繼承POST基類。
public AddAppNews() { }    建構函式必須是public,只有這樣,才能反射成功。
public override void Excute()    實現基類的業務方法Excute()
AppNews appNews = this.Deserialize<AppNews>();    這裡用到了基類Post.cs中的protected T Deserialize<T>()方法。還記得這個方法嗎?不記得就回過去看一下。





上面講的是POST請求的業務處理。下面列一個GET請求的處理。
比如我們要取新聞。我們就講一下取新聞的GET請求。
圖片

程式碼方法,和Post請求的業務邏輯,比如AddAppNews.cs是類似的。
所不同的是:
string userIdReq = this.Input["UserID"];    他是用這種方式來處理傳遞過來的引數。比如get請求時,請求端發了一個UserID的引數。通常請求的url會是這樣子的:http://www....com/News.aspx?UserID=xxx

 

 

 

當你願意看到這裡時,後續還有4篇:下面是連結:

(原創)多系統間需要對接,我寫了一個介面框架。實用性非常強,寫出來大家交流。需要的可以直接搬過去用。(第1篇) http://www.cnblogs.com/mazhiyuan/p/5224046.html

(原創)物件導向的系統對接介面編寫。第2篇 http://www.cnblogs.com/mazhiyuan/p/5224049.html

(原創)物件導向的系統對接介面編寫。第3篇 http://www.cnblogs.com/mazhiyuan/p/5224050.html

(原創)物件導向的系統對接介面編寫。第4篇 http://www.cnblogs.com/mazhiyuan/p/5224054.html

(原創)物件導向的系統對接介面編寫。第5篇(完結) http://www.cnblogs.com/mazhiyuan/p/5224056.html

 

如果看完,有不明白的可以評論發給我。

 

真的很好用的。。有需要做介面的同學。。可以把整個框架拿去用下。

 

 

提供原始碼下載,請點選:原始碼

相關文章