在ASP.NET中物件導向的程式設計思想 (轉)

amyz發表於2007-08-15
在ASP.NET中物件導向的程式設計思想 (轉)[@more@]


首先,我們還是來談一下面向的思想吧。我想現在的主流程式設計思想無非兩種:結構與物件導向。以前,在中我們完全採用的是結構化思想。現在,可以完全支援物件導向的程式設計思想,這不得不說是一個質上的飛躍。

記得我在大約半年前給大家寫過一篇<>,當時是由於看到一本小說的啟發,發現任何東西都可以用物件導向的思想來看。我現在還是簡單談一下吧,物件導向無非就是把世間萬物當做一個類,要想使用類做事,就必須建立類的例項。這很好理簡,比方人是一個類,我們總不能說叫人去做事吧(這樣沒有針對性),我們往往說叫張三 or 李四去,這張三 or 李四就是人這個類的一個例項。這就是物件的概念。再講一下就是事件與動作,舉個例子:起風了,下雨了,收衣服了。起風了,下雨了是事件,這個事件會激發收衣服這個動作,這個動作的者就是物件。如果大家學過 SERVER的,我想對這一點思想會更清楚。物件導向還比較重要的就是繼承(Inherits)與多型。這很好理解,比方,張三會收衣服,張三生的兒子繼承了張三的特點,也會收衣服,這就是繼承,而且說不定張三的兒子還會開車,這就是多型。

好了,對於物件導向理解我就說這麼一點,還是說一下在asp.net中如何用物件導向的觀點來程式設計吧。我們在編時,通常要要處理:UI(介面,也就是資料的顯示)與程式碼(如何處理資料的Code(程式碼)。為了達到UI與Code的完全分開,我們把UI當作一個物件,Code當作另我一個物件。當然我們要研究這兩個物件的關係,還記得我們在編ASP程式時把同一段程式碼Copy到很多頁面,看來code是父類了,UI是子類了。不過他們都是從 System.Web.UI.Page繼承過來。理清了類的關係,我們不難理解程式碼UI與Code分開的思想了。
關係圖:
引入名稱空間:using System.Web.UI
父類 page→ 很多子類Code(*.cs)→很多子子類 UI(*.檔案)

因為我主要是想大家瞭解這種程式設計思想,所以我只舉一個簡單的例子,我想大家有了思想,再就是多找例項來看了。

檔案兩個:
UI類: default.aspx 主要用來顯示資料,用天DataGrid
Code類: default.aspx.cs 主要用來建立資料聯接、查詢、繫結資料於DataGrid控制元件的
        裡面我建立了自己的namespace名叫vagrant,以及類MyVagrant
: data,裡面有一個關係表student

為了說明default.aspx類是從default.aspx.cs 繼承過來的,需要在default.aspx申明:
" Codebehind="default.aspx.cs" Inherits="vagrant.MyVagrant" %>
Codebehind表明父類的原始檔,Inherits="vagrant.MyVagrant" 表明該檔案是從哪個類繼承下來的。

現在給出原始檔
default.aspx程式碼:







style="Z-INDEX: 101; LEFT: 197px; POSITION: absolute; TOP: 48px"
BorderStyle="Ridge" GridLines="None" BorderWidth="2px" BorderColor="White"
BackColor="White" CellPadding="3" CellSpacing="1" Width="494px" Height="143px">





default.aspx.cs 檔案程式碼 注意:需要編譯
/*
功能說明:default.aspx.cs用來將UI與分開,此為程式碼部分,需要編譯
Created By vagrant
2001.10.17
個人主頁:
*/


入必須的名稱空間
using System;
using System.Data;
using System.Data.SqlClient; 入使用SQL資料庫所必須的名稱空間
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace vagrant 建自己的名稱空間
{

public class MyVagrant :Page 的類MyVagrant是從類System.Web.UI.Page類繼承過來的
{
protected DataGrid MyDataGrid;


private void Page_Load( sender, System.EventArgs e)//頁面裝載初始化,可檢查頁面是不是第一次被處理
{

// 第一步:建立資料庫聯接,用物件導向的觀點就是建立一個SQL資料庫聯接物件的例項,並初始化
SqlConnection MyConnection=new SqlConnection("Server=(local);DataBase=data;UID=sa;PWD=;");

二步:讀取資料庫,來物件導向的觀點就是建立一個查詢物件的例項,並初始化
SqlDataAdapter MyCommand=new SqlDataAdapter(" * from student",MyConnection);

三步:資料 
DataSet ds=new DataSet();
MyCommand.Fill (ds,"vagrant");
// 第四步:繫結資料
MyDataGrid.Data =ds.Tables ["vagrant"].DefaultView
MyDataGrid.DataBind ();

}


}
}


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-958757/,如需轉載,請註明出處,否則將追究法律責任。

相關文章