当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 从一个舆论调查的制作谈面向对象的编程思路(一)

ASP.NET
AspNetPager与Socut.Data使用方法
asp.net UpdaeProgress的简单用法
asp.net ajaxControlToolkit ValidatorCalloutExtender的简单用法
asp.net 简易生成注册码(数字+大小写字母)
asp.net中利用ashx实现图片防盗链代码
ASP.NET程序中常用代码汇总
ASP.NET 2.0/3.5中直接操作Gridview控件插入新记录
ASP.NET Ajax级联DropDownList实现代码
ASP.NET 2.0写无限级下拉菜单
asp.net Web Services上传和下载文件(完整代码)
asp.net DataGrid控件中弹出详细信息窗口
Asp.NET 多层登陆实现代码
利用Asp.Net回调机制实现进度条
ASP.NET Ref和Out关键字区别分析
Javascript调用Webservice的多种方法
.Net下的签名与混淆图文分析
.Net Compact Framework开发小技巧 推荐
.Net连接Oracle数据库的实现代码
js获取.aspx页面里面的服务器控件和.ascx中的服务器控件值
asp.net下 jquery jason 高效传输数据

ASP.NET 中的 从一个舆论调查的制作谈面向对象的编程思路(一)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 39 ::
收藏到网摘: n/a

一般的web程序员刚刚转到.net或jsp时,往往编程观念转不过来,还是按照以前那种结构化的编程思

路来,而不从面向对象的角度考虑,造成业务逻辑与页面html代码混杂在一起,一旦页面原型改变,相应

的程序也要修改,这样造成代码的可重用性太低。而asp.net或jsp比asp最大的一个进步就是面向对象,

使代码可重用性达到最高。作为一个典型的web程序来说,一般把它分为三层比较理想,业务层,数据层

和页面显示层。下面以一个舆论调查的例子来讲一下。
让我们先来看一下如果一个舆论调查从面向对象的角度来考虑应该是怎样的。首先,从数据方面来说

,一个舆论调查应该有一个调查主题,然后应该有几个调查项,最后还应该有参加调查的用户以及比如调

查起止时间等等;其次,从舆论调查的方法来说,很简单,一个投票的方法,然后就是显示调查结果的方

法。知道了上面这些,我们就可以这样来构造一个调查类:

namespace MyClass.Util
{
using System;
using System.Collections ;
using System.Drawing ;
using MyClass.Util ;

/// <summary>
/// 一个通用的调查类
/// </summary>
public class Survey : object
{
/// <summary>
/// 调查编号
/// </summary>
/// <remarks>
/// 在数据库中是varchar型,20字节
/// </remakrs>
protected string m_strID ;

/// <summary>
/// 调查标题
/// </summary>
protected string m_strTitle ;

/// <summary>
/// 调查开始时间
/// </summary>
protected DateTime m_datBeginTime ;

/// <summary>
/// 调查截止时间
/// </summary>
protected DateTime m_datEndTime ;

/// <summary>
/// 点击数
/// </summary>
/// <remarks>
/// 浏览人数
/// </remarks>
protected int m_intHits ;

/// <summary>
/// 调查项
/// </summary>
protected ArrayList m_arrItems ;

//属性
/// <summary>
/// 调查标题
/// </summary>
public string Title
{
get
{
return m_strTitle ;
}
set
{
m_strTitle = value ;
}
}

/// <summary>
/// 总共点击数
/// </summary>
public int Hits
{
get
{
return m_intHits ;
}
set
{
m_intHits = 0 ;
}
}

/// <summary>
/// 调查开始时间属性
/// </summary>
public DateTime BeginTime
{
get
{
return m_datBeginTime ;
}
set
{
m_datBeginTime = value ;
}
}

/// <summary>
/// 调查截止时间属性
/// </summary>
public DateTime EndTime
{
get
{
return m_datEndTime ;
}
set
{
m_datEndTime = value ;
}
}

/// <summary>
/// 调查项集合
/// </summary>
/// <remarks>是一个SurveyItem类的集合</remarks>
public ArrayList Items
{
get
{
return m_arrItems ;
}
set
{
m_arrItems = value ;
}
}

/// <summary>
/// 调查编号
/// </summary>
public string SurveyID
{
get
{
return m_strID ;
}
set
{
m_strID = value ;
}
}


/// <summary>
/// 构造函数
/// </summary>
public Survey()
{
//
// TODO: Add Constructor Logic here
//
m_strTitle = "" ;
m_arrItems = new ArrayList() ;
}


/// <summary>
/// 重载构造函数
/// </summary>
/// <param name="a_strTitle">调查标题 </param>
/// <remarks>适用于没有截止时间的调查</remarks>
public Survey(string a_strTitle)
{
m_strTitle = a_strTitle ;
m_datBeginTime = DateTime.Today ;
m_datEndTime = DateTime.Today ;
m_arrItems = new ArrayList() ;
}

/// <summary>
/// 重载构造函数
/// </summary>
/// <param name="a_strTitle">调查标题 </param>
/// <param name="a_datBeginTime">开始时间 </param>
/// <param name="a_datEndTime">结束时间 </param>
/// <remarks>适用于有截止时间的调查</remarks>
public Survey(string a_strTitle , DateTime a_datBeginTime , DateTime

a_datEndTime)
{
m_strTitle = a_strTitle ;
m_datBeginTime = a_datBeginTime ;
m_datEndTime = a_datEndTime ;
}

/// <sum