以注册用户为例。
环境:VS2005,ASP.NET,C#。
我们在界面上放置一个叫RegButton的按钮,点击后会实现注册功能。我们一般是想法如下:
1.我们需要验证数据是否正确,好,需要一个CheckData函数,在代码上写上
1
private bool CheckData( tb_user User)
2
{
3
// 检查注册信息是否正确
4
}
2.然后,我们需要一个注册功能。好,在代码上写上
private bool CheckData( tb_user User)2
{3
// 检查注册信息是否正确4
}
private void RegUser(tb_user User)
{
// 实现注册功能
// 写入数据库
}
private void RedirectToSuccessPage(string Info)
{
// 跳转到成功页面
Response.redirect("Success.aspx?info=" + Info);
}
protected void RegButton_Onclick( sender, e )
{
tb_user user = new tb_user();
this.CheckData( user );
this.RegUser( user );this.RedirectToSuccessPage("注册成功");
}这时,发现少了一个得到用户信息的函数。我们在代码上写上
private tb_user GetUserInfo()
{
// 得到用户注册信息
}
protected void RegButton_Onclick( sender, e )
{
tb_user user = this.GetUserInfo();
if( this.CheckData( user ) ){
this.RegUser( user );}
this.RedirectToSuccessPage("注册成功");
}我们可以借鉴测试驱动开发,而且面向功能来实现代码,而不是先考虑实现的细节。
首先,我们写OnClick函数。
protected void RegButton_Onclick( sender, e )
{
tb_user user = this.GetUserInfo();
if( this.CheckData( user ) ){
this.RegUser( user );}
this.RedirectToSuccessPage("注册成功");
}然后,VS2005会提示我们,有几个函数没有定义。我们使用VS2005帮我们自动生成一个定义。
生成的结果如下:
void CheckData( tb_User user )
{
throw new Exception("函数示定义");
}我们直接改函数体就行了。可以在很多比较复杂的逻辑过程函数中使用此方法。

