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

ASP.NET
C# Quoted-Printable编码、解码
asp.net Google的translate工具翻译 API
.NET读取所有目录下文件正则匹配文本电子邮件
asp.net 半角全角转化工具
AjaxControlToolKit 显示浏览者本地语言的方法
asp.net HTML文件上传标签
ASP.NET 绑定DataSet中的多个表
ASP.NET 重定向的几种方法小结
Asp.Net 重定向必须要知道的一些资料
ASP.NET 导出到Excel时保留换行的代码
Asp.Net Cache缓存使用代码
document.getElementsByName和document.getElementById 在IE与FF中不同实现
GridView单元格合并
asp.net 大文件上传控件
asp.net 日期函数 某月的第一天和最后一天的日期
asp.net 时间类 一周的周一和周末的日期
C# javaScript函数的相互调用
asp.net membership 密码重设
"虚拟路径"..."映射到另一个应用程序,这是不允许的!
如何传值在2个页面之间 要求不刷新父页面,并且不能用Querystring传值

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 182 ::
收藏到网摘: 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